• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

stm32怎样用串口解析发来的一组数据帧

2c648e5d6dc26a63 2018-11-30 浏览量:4635

QQ截图20181130152253.jpg


该数据帧每秒两次向stm32发送过去

如图 AA是帧头  3F 3F 是帧尾  中间每项都是数据   怎样把中间的数据读取出来

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 那么你要知道中间的数据的物理意义么,还是只是把数据截取出来呢

    这里的一帧数据可以放在一个数组里的

    这里有17个数据,可以设定数组大小为a[16];

    把这一帧数据赋值给这个数组,也可以接收时,就放在这个数组里

    那么,a[1]到a[14]就是你要的数据了

    可以再设置一个bb[13]

    b的地址初始化为a[1]的地址,那么bb数组中的数据就完全是数据了

    • 发布于 2018-11-30
    • 举报
    • 评论 4
    • 0
    • 0
汉云 回复了 汉云:为了判断数据的正确性,进行提取前要通过校验才是有用的数据 回复
2c648e5d6dc26a63 回复了 汉云:中间的数据是传感器发来的数据,也是一直在变化的,我要把中间的每个数据都要提取出来,就是中断函数不知道该怎么写 回复
汉云 回复了 2c648e5d6dc26a63:使用的是HAL库,还是寄存器的方式? 回复
汉云 回复了 2c648e5d6dc26a63:使用HAL库的方式:https://blog.csdn.net/ouening/article/details/79218971 回复

其他答案 数量:12
  • 当串口接收到AA以后,下面接收的数据要保存好,同时连续接到两个3F时接收结束,此时就可以解析接收到的数据了
    • 发布于2018-11-30
    • 举报
    • 评论 1
    • 0
    • 0
2c648e5d6dc26a63 回复了 兰香几度愁 :中断函数该怎么写 回复

  • 先判断你接收的数据

    串口中断里做判断,判断为AA ,用数组把后面的数据全部存进去,一直判定到3F为止

    然后在主函数里处理这个数组的数据即可

    • 发布于2018-11-30
    • 举报
    • 评论 0
    • 0
    • 0

  • 想解析串口收到的数据,就必须要连接设备串口通信协议,就如你说的一样,既然你知道数据的起始字节和结束字节,那么就在串口中断服务程序中判断传送过来的数据是不是AA,如果是,则表示是一桢新的数据,然后接受数据,一直判断3F3F,如果收到3F3F则表明一桢数据接受完毕。进行解析程序。如果你不知道中间那些字节表示什么,就无法解析。
    • 发布于2018-11-30
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以用32实现的串口空闲中断+DMA不定长接收,详情看我发的文章。

    • 发布于2018-11-30
    • 举报
    • 评论 0
    • 0
    • 0

  • 也就是把一帧数据中除去帧头与校验的数据,只留下有用的数据么
    • 发布于2018-11-30
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个应该不难吧。判断AA在哪,确定帧头位置;然后去掉最后两个字节,将中间的有效数据单独保存。
    • 发布于2018-11-30
    • 举报
    • 评论 0
    • 0
    • 0

  • 先识别帧头和帧尾,然后在判断中间的数据
    • 发布于2018-11-30
    • 举报
    • 评论 0
    • 0
    • 0

  • 既然你知道如何判断一个数据帧啦,就可以把数据帧中有效的部分(这里是14byte)存入到一个数组(其实是内存连续区域中)

    这个数据的结构应该从发出端开发那里了解到

    存入内存后就可以按帧数据结构进行指针类型转换,就可以按结构体进行访问啦。

    • 发布于2018-12-01
    • 举报
    • 评论 0
    • 0
    • 0

  • 收到aa就读取后面的数据,直到收到结束符
    • 发布于2018-12-01
    • 举报
    • 评论 0
    • 0
    • 0

  • 这种定长的数据用个普通的中断方式去接收就行,接到aa开始计并开始保存,直到接到3F 3F结束,将收到的个数以及保存的数据内容取出来
    • 发布于2018-12-11
    • 举报
    • 评论 0
    • 0
    • 0

  • 一般都是通过AA作为首数据,然后一直接收后面的数据
    • 发布于2019-01-09
    • 举报
    • 评论 0
    • 0
    • 0

  • 直接用空闲中断加DMA的方式来进行接收数据的判断
    • 发布于2019-01-12
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

stm32怎样用串口解析发来的一组数据帧