在标准库中有 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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)