OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4303|回复: 5

STM32串口接收数据后,存在数组里面,如何挨个读取数组内容,确认接收的数据正确

[复制链接]

3

主题

6

帖子

0

精华

初级会员

Rank: 2

积分
93
金钱
93
注册时间
2018-6-22
在线时间
19 小时
发表于 2018-6-22 15:49:20 | 显示全部楼层 |阅读模式
STM32串口接收数据后,存在数组里面,如何挨个读取数组内容,确认接收的数据正确
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

882

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3071
金钱
3071
注册时间
2018-2-7
在线时间
285 小时
发表于 2018-6-22 16:06:32 | 显示全部楼层
如果发送的数据有固定的头和尾,在中断中接收数据的时候就要判断,如果数据头正确,在开始给数组总存数据,直到接收到尾然后结束存储。然后在去中断外面,通过数组下标去数组中取数据,然后去判断数据是否正确。
回复 支持 反对

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11533
金钱
11533
注册时间
2014-4-1
在线时间
1313 小时
发表于 2018-6-22 16:08:28 | 显示全部楼层

是说如何解释数据吗?
必须与协议配合,不论是标准协议,还是自定义协议。


回复 支持 反对

使用道具 举报

3

主题

6

帖子

0

精华

初级会员

Rank: 2

积分
93
金钱
93
注册时间
2018-6-22
在线时间
19 小时
 楼主| 发表于 2018-6-22 16:21:05 | 显示全部楼层
while(1)
                {             
                              uint8_t Uart1_Rx_Num=0;                             
            uint8_t Uart1_Tx_Num;   
            uint8_t Uart1_Sta;
                              uint8_t Uart1_Buffer[Uart1_Rx_Num];
            
                  
                          if((UartHandle.Instance ->ISR |= USART_ISR_RXNE)!= RESET )
                         
                          Uart1_Buffer[Uart1_Rx_Num]=UartHandle.Instance ->RDR;                                   
        Uart1_Rx_Num++;
                         
                         
                         if( Uart1_Buffer[0]==0x03)
                         
                         if( Uart1_Buffer[4]==0x06)                       
                         {
                               
                           HAL_Delay(200);
                       
                           Uart1_Sta=0x01;
                                }   将接收到的数据存入Uart1_Buffer[],  读取Uart1_Buffer[0],和Uart1_Buffer[4]是否和接收的数据相同
回复 支持 反对

使用道具 举报

3

主题

6

帖子

0

精华

初级会员

Rank: 2

积分
93
金钱
93
注册时间
2018-6-22
在线时间
19 小时
 楼主| 发表于 2018-6-22 16:22:59 | 显示全部楼层
如何检测数据头和尾
回复 支持 反对

使用道具 举报

21

主题

138

帖子

0

精华

新手入门

积分
8
金钱
8
注册时间
2019-6-1
在线时间
52 小时
发表于 2019-10-15 12:46:51 | 显示全部楼层
蒋人凤 发表于 2018-6-22 16:22
如何检测数据头和尾

请问解决了吗,我现在有一个协议是知道包头和数据长度,但不知道怎么处理了
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-16 18:13

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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