博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
stm32 获取有效字符串
阅读量:6035 次
发布时间:2019-06-20

本文共 1290 字,大约阅读时间需要 4 分钟。

hot3.png

void USART2_IRQHandler()   {       if(USART_GetITStatus(USART2,USART_IT_RXNE) != RESET) //中断产生            {          USART_ClearITPendingBit(USART2,USART_IT_RXNE); //清除中断标志                Uart2_Buffer[Uart2_Rx] = USART_ReceiveData(USART2); //把数据存储到缓冲数组                Uart2_Rx++;          Uart2_Rx &= 0xFF;            }       if(Uart2_Buffer[Uart2_Rx-1] == 0x5A) //如果收到的是 0x5A 则下面就是有效数据                  Uart2_Tx = Uart2_Rx-1;       if((Uart2_Buffer[Uart2_Tx] == 0x5A)&&(Uart2_Buffer[Uart2_Rx-1] == 0xA5)) //检测到头的情况下检测到尾         {              Uart2_Len = Uart2_Rx-1- Uart2_Tx; //长度                          Uart2_Sta=1; //标志位            }       if(USART_GetFlagStatus(USART2,USART_FLAG_ORE) == SET) //溢出            {              USART_ClearFlag(USART2,USART_FLAG_ORE); //读SR                          USART_ReceiveData(USART2); //读DR            }  } main.c###################################################################     if( Uart2_Sta )//数据帧接收完毕      {              for(tx2=0;tx2 <= Uart2_Len;tx2++,Uart2_Tx++)              USART2_SendByte(Uart2_Buffer[Uart2_Tx]); //发送数据                     Uart2_Rx = 0; //初始化                     Uart2_Tx = 0;                 Uart2_Sta = 0;       }	      比如数据帧为  5A 00 11 65 33 22 23 43 A5    此为一帧

转载于:https://my.oschina.net/u/2252538/blog/479570

你可能感兴趣的文章
linux基础概念和个人笔记总结(6)
查看>>
一图胜千言 -- SQL Server 基准测试
查看>>
微小说精选
查看>>
我的友情链接
查看>>
主板典型故障解决方法
查看>>
Hadoop集群搭建步骤
查看>>
更改ubuntu的系统语言
查看>>
jvm参数详解,内存泄露解决
查看>>
升级Windows Management Framework对事件转发的影响
查看>>
我的友情链接
查看>>
后缀数组 --- HDU 3518 Boring counting
查看>>
mysql查询两个日期之间相差多少天?
查看>>
sublime text 3配置c/c++编译环境
查看>>
Windows 下MongoDB复制集配置
查看>>
A SIMPLE REMOTING EXAMPLE IN C#
查看>>
Spring配置报错- 元素 'beans' 必须不含字符 [子级]
查看>>
Links to sample code for the Windows Phone 7
查看>>
linux 学习笔记五 查看文件篇章
查看>>
Swing手动进行最大化最小化
查看>>
Architecture.the-reactive-manifesto
查看>>