您的位置:首页 > 其它

STM32中一些需要注意的小问题

2017-04-02 21:47 204 查看

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数据手册才能搞明白)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: