目录
前言:
缺点:有些情况下会导致数据丢失(可能返回数据中0x0d、0a本身为有效数据)
适用:约定协议的数据帧(发送数据的设备必须以相应的约定字节作为一次数据结束)
代码:
void USART1_IRQHandler(void) //串口中断服务程序(函数)
{
u8 Res; //定义Res,用于Res =USART_ReceiveData(USART1);中存储串口1发送的数据(这里的数据按位发送)
#if SYSTEM_SUPPORT_OS //如果SYSTEM_SUPPORT_OS为真,则需要支持OS
OSIntEnter();
#endif
if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) //接收中断(接收到的数据必须是0x0d 0x0a结尾)
{
Res =USART_ReceiveD
本文介绍了STM32通过标志位0X0D和0X0A进行串口接收不定长数据的方法,强调了在中断服务函数中使用OSIntEnter()和OSIntExit()的重要性,以确保在UCOSII实时操作系统中的任务调度。同时,解释了#if...#endif在C++中的条件编译预处理命令用法。
最低0.47元/天 解锁文章
8406

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



