鱼C论坛

 找回密码
 立即注册
查看: 307|回复: 1

[已解决]串口获取标志位的函数

[复制链接]
发表于 2024-1-26 09:46:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
USART_GetFlagStatus(USART2, USART_FLAG_RXNE)!=RESET)

(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)


(USART_GetFlagStatus(USART2, USART_FLAG_ORE) != RESET)
这三个语句有什么区别,含义,目的,应用场景
最佳答案
2024-1-26 09:47:49
这三个语句都是用于串口通信中获取标志位的函数。

第一个语句:
USART_GetFlagStatus(USART2, USART_FLAG_RXNE) != RESET
含义:判断串口USART2接收缓冲区是否非空。
目的:判断是否有收到新的数据。
应用场景:可以用来判断是否需要读取接收缓冲区的数据。

第二个语句:
USART_GetITStatus(USART1, USART_IT_RXNE) != RESET
含义:判断串口USART1接收中断是否发生。
目的:判断是否有收到新的数据。
应用场景:可以用来在中断服务程序中判断是否需要处理接收数据。

第三个语句:
USART_GetFlagStatus(USART2, USART_FLAG_ORE) != RESET
含义:判断串口USART2的溢出错误标志位是否被置位。
目的:判断是否发生了溢出错误,即接收缓冲区溢出。
应用场景:当接收缓冲区没有及时处理数据而导致溢出时,可以使用该语句进行判断和处理。

总结:
- 第一个语句和第二个语句都是用于判断是否有新的数据到达,只不过第一个语句是通过判断接收缓冲区是否非空来实现的,而第二个语句是通过判断接收中断是否发生来实现的。
- 第三个语句则是用于判断接收缓冲区是否发生了溢出错误。
- 应用场景会根据具体情况而定,可以根据需要选择使用哪个语句来判断和处理串口数据。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-1-26 09:47:49 | 显示全部楼层    本楼为最佳答案   
这三个语句都是用于串口通信中获取标志位的函数。

第一个语句:
USART_GetFlagStatus(USART2, USART_FLAG_RXNE) != RESET
含义:判断串口USART2接收缓冲区是否非空。
目的:判断是否有收到新的数据。
应用场景:可以用来判断是否需要读取接收缓冲区的数据。

第二个语句:
USART_GetITStatus(USART1, USART_IT_RXNE) != RESET
含义:判断串口USART1接收中断是否发生。
目的:判断是否有收到新的数据。
应用场景:可以用来在中断服务程序中判断是否需要处理接收数据。

第三个语句:
USART_GetFlagStatus(USART2, USART_FLAG_ORE) != RESET
含义:判断串口USART2的溢出错误标志位是否被置位。
目的:判断是否发生了溢出错误,即接收缓冲区溢出。
应用场景:当接收缓冲区没有及时处理数据而导致溢出时,可以使用该语句进行判断和处理。

总结:
- 第一个语句和第二个语句都是用于判断是否有新的数据到达,只不过第一个语句是通过判断接收缓冲区是否非空来实现的,而第二个语句是通过判断接收中断是否发生来实现的。
- 第三个语句则是用于判断接收缓冲区是否发生了溢出错误。
- 应用场景会根据具体情况而定,可以根据需要选择使用哪个语句来判断和处理串口数据。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-29 00:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表