1#使用外部中断时,需要打开AFIO时钟,具体代码为
/*来源:ST 3.5.0 库*/
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
2#串口启动时发送的第一个字节被吃掉了
stm32串口发送时,需要先读SR,再写DR,才能完成TC位的清除。我写的发送程序逻辑是:
UART4->DR = (uint8_t)(*s);
while((UART4->SR&0x40)==0);
平时是可以的,然而在硬复位时,没有读过SR就先写了DR,导致TC位没清除,第一个字节就被吃掉了。
解决方法:写之前读SR,或者初始化的时候读一下SR,或者清除TC(但是貌似使能串口后立马清除没有效,得过段时间才有效,不清楚什么情况,可能需要看stm32数据手册才能搞明白)
本文探讨了STM32中串口发送时第一个字节丢失的问题及解决方案,并介绍了使用外部中断时配置AFIO时钟的具体步骤。对于串口发送问题,文章提供了几种可行的解决方法。
2022

被折叠的 条评论
为什么被折叠?



