手机红外遥控器发送红外信号到STM32【HAL库】

现在大部分手机上都有红外遥控功能,而且好像大部分信号STM32都是可以收到的。现在就使用STM32发送红外信号,由STM32上的红外接收器接收后执行不同的操作。以下是注意事项:

在标准库中有  EXTI_ClearITPendingBit(EXTI_Line15); 清除中断位,使用HAL库不用使用清除中断位

在HAL库中NVIC的设置在文件stm32f1xx_hal_cortex.c中

HAL_Delay并不能实现us的延时效果,要自己写

            void delay_us(uint32_t i)

            {

                uint32_t temp;

                SysTick->LOAD=9*i;

                SysTick->CTRL=0X01;

                SysTick->VAL=0;

          do

                {

                    temp=SysTick->CTRL;

                }

              while((temp&0x01)&&(!(temp&(1<<16))));

              SysTick->CTRL=0;

              SysTick->VAL=0;

          }

红外接收器的数据引脚为PG15

PG15的设置

/*Configure GPIO pin : PG15 */

GPIO_InitStruct.Pin = GPIO_PIN_15;

GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING;  //下降沿触发

GPIO_InitStruct.Pull = GPIO_PULLUP;  //上拉模式

HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);

RCC设置72MHz,要注意,时钟频率不同,计算时使用的数值大小不同

要printf输出到串口还是要重定向printf

#ifdef __GNUC__

/* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf

set to 'Yes') calls __io_putchar() */

#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)

#else

#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)

#endif /* __GNUC__ */

/**

* @brief  Retargets the C library printf function to the USART.

* @param  None

* @retval None

*/

PUTCHAR_PROTOTYPE

{

/* Place your implementation of fputc here */

/* e.g. write a character to the EVAL_COM1 and Loop until the end of transmission */

HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xFFFF);

return ch;

}

手机遥控器键位对应编码

1 红外接收码 926D22DD

2 红外接收码 926DA25D

3 红外接收码 926D629D

4 红外接收码 926D609F

5 红外接收码 926DE01F

6 红外接收码 926D827D

7 红外接收码 926D6897

8 红外接收码 926D02FD

9 红外接收码 926DAA55

0 红外接收码 926D12ED


图片发自简书App
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 标准库占绝大多数,自己买的板子跟的资料也一般是标准库,HAL库很少,不过要是使用STM32CubeMx配置,那么就...
    停下浮躁的心阅读 6,763评论 0 3
  • 姓名:周崇杰 学号:16140120059 专业:机械设计制造及其自动化 转载自:http://blog.csd...
    CJbaby阅读 4,787评论 0 5
  • 前言 之前一直在Linux下面尝试进行部署了RT-Thread的stm32的开发,这种方式确实是可行的,但是也会带...
    linanwx阅读 6,433评论 0 2
  • 姓名:周崇杰 学号:16140120059 专业:机械设计制造及其自动化 转载自:http://blog.csd...
    CJbaby阅读 3,539评论 0 3
  • 此文用于记录学习STM32中所学习或者巩固的知识,主要围绕但并不局限于STM32。 本次学习并非为了深入了解使用S...
    yhhk阅读 2,168评论 0 11