现在大部分手机上都有红外遥控功能,而且好像大部分信号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的设置
/*