查看: 9607|回复: 1

[提问] STM32串口通讯的问题

[复制链接]
发表于 2013-7-11 17:21:41 | 显示全部楼层 |阅读模式
stm32的串口通讯一次只能接收一个字节,接收一个字节后出现标志位,那要想继续接收数据,是不是每次接到一个字节的数据后都要清零标志位?还有:USART_GetFlagStatus与USART_GetITStatus的区别是不是前者是接收到一个字节的标志;后者是串口中断的标志?后者的中断是不是所用的数据发送完毕才产生?

发表于 2013-8-20 00:37:45 | 显示全部楼层
①是不是每次接到一个字节的数据后都要清零标志位?答:是的,在STM32单片机的串口通讯中,每当SBUF接收到一个字节数据后,相应的接收标志位会被置1,该位需要软件清零;如果要想继续接收数据,必须先将该位软件清零。
②USART_GetFlagStatus与USART_GetITStatus的区别:IT主要就是与中断相关的,检查USART中断产生与否,当USART发送完成后会有USART_IT_TC中断,因此可以用来判断,而USART_GetFlagStatus是USART标志位设置与否,其中就有发送完成标志位USART_Flag_TC所以也可用来判断。而最终都是操作SR寄存器。另外,USART_GetFlagStatus仅仅是把SR相应的标志位置位,但是USART_GetITStatus还会去操作相应的CR1,CR2,CR3,完了再去进行SR的置位。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表