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

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数据手册才能搞明白)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值