分享自己的串口接收GUI可实时观察数据图像-MyScomTest可实时显示数据.rar

上传者: 39841365 | 上传时间: 2022-04-10 22:01:25 | 文件大小: 53KB | 文件类型: RAR
分享自己的串口接收GUI可实时观察数据图像-MyScomTest可实时显示数据.rar
做这个软件的想法是这样的 先是阅读了飞哥的串口收发助手程序
其中 在第二版书中的P512页末端提出了一个串口接收数据的要求
即 假设计算机与某硬件设备用串口相连 设备每隔固定时间(我这里是5mS 速度非常快)通过串口给计算机发送数据
这帧数据中包含有 帧头 两字节 0x55 0xAA 数据字节数20 一共每帧22个数据
飞哥提出的是仅用串口的定时器定时读取的方法 并且他说 “经实践证明是可以的”
费劲九牛二虎之力我把它实现了 还是挺艰辛的 程序刚刚完成基本调试 代码也不是特别整齐
我用单片机做上位机发送串口数据 按一帧20个数据并 2个帧起始位  帧发送间歇时间是定时的5mS
为什么要做这个东西呢?因为 这个做法是很有意义的  实时地观察采样数据 我参加的智能车比赛中就意识到 上位机调试 看数据曲线十分重要  否则 不知道参数的变化情况 怎么调试?
大概描述一下这个程序
STM32底层A/D转换采样 通过DMA连接片上USART  定时地发送数据到上位机 其中我对一个通道进行采样 采样十次 即同一个传感器  一共20个数据(STM32是12位的片上AD 参考电压3.3V) 数据传入Matlab的串口中 用矩阵相乘的方法求出平均值 后plot到axes图上  
由于是定时器触发的读取数据函数 那么每次读取到的数据有以下几种情况:
||Data, Data,StartByte1,StartByte2,Data,...,StartByte1,StartByte2||
||Data, Data,StartByte1,StartByte2,Data,...,StartByte1||
||Data, Data,StartByte1,StartByte2,Data,...,Data||  %这一次定时器定时接收的到的数据末尾的最后一帧的Data不满20个 不够一帧
||StartByte1,StartByte2,Data,...,Data,Data,StartByte1,StartByte2|| %这次读到的数据末尾只有帧头的2位标志数据 连原始数据全部都得在下一次定时读取中才能读得到
情况比较多 即一帧的数据可能会被中间间断成2次读取!每一次定时读取的时候 就意味着至多会有2帧数据是不完整的!
大家一般的想法大概就是丢失被中断的帧 这样做程序简洁 方便读 但不可避免地会丢失掉一些数据
我在这里耽误了很久 写了很多段程序代码来完整地恢复了这些被打断的数据 (吹毛求疵吧 但我觉得如果在非常严格的数据观察里是有意义的)
程序有时还是有些不知道为什么的BUG
工科人 表达能力不行 分享一个小作品 可能程序写得比较乱 大家看不明白 或运行不了 有需要就问吧   
使用方法 我把STM32 工程里的USER文件放进来了 整个工程太大放不下  
连接STM32 ADC1 通道15到外设 把USART1接到电脑上
Matlab 打开GUI 'serial_communication2'  ‘打开串口’ OK 看看数据吧 (有时可能会Matlab报错 关闭再重新执行一次GUI 这BUG一直不知道错在哪)

文件下载

资源详情

[{"title":"( 13 个子文件 53KB ) 分享自己的串口接收GUI可实时观察数据图像-MyScomTest可实时显示数据.rar","children":[{"title":"MyScomTest可以解算数据9月28日","children":[{"title":"NewFigure1.m <span style='color:#111;'> 3.25KB </span>","children":null,"spread":false},{"title":"serial_communication2.asv <span style='color:#111;'> 25.10KB </span>","children":null,"spread":false},{"title":"serial_communication2_activex1 <span style='color:#111;'> 3.50KB </span>","children":null,"spread":false},{"title":"Unsolved_Bug.txt <span style='color:#111;'> 287B </span>","children":null,"spread":false},{"title":"mycomet.m <span style='color:#111;'> 2.09KB </span>","children":null,"spread":false},{"title":"icon.jpg <span style='color:#111;'> 2.30KB </span>","children":null,"spread":false},{"title":"serial_communication2.fig <span style='color:#111;'> 13.15KB </span>","children":null,"spread":false},{"title":"NewFigure1.fig <span style='color:#111;'> 17.07KB </span>","children":null,"spread":false},{"title":"End_Test.m <span style='color:#111;'> 167B </span>","children":null,"spread":false},{"title":"Valid_Test.txt <span style='color:#111;'> 1.37KB </span>","children":null,"spread":false},{"title":"IF.m <span style='color:#111;'> 85B </span>","children":null,"spread":false},{"title":"serial_communication2.m <span style='color:#111;'> 25.14KB </span>","children":null,"spread":false},{"title":"NewFigure1.asv <span style='color:#111;'> 3.20KB </span>","children":null,"spread":false}],"spread":false}],"spread":true}]

评论信息

免责申明

【只为小站】的资源来自网友分享,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,【只为小站】 无法对用户传输的作品、信息、内容的权属或合法性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论 【只为小站】 经营者是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。
本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二条之规定,若资源存在侵权或相关问题请联系本站客服人员,zhiweidada#qq.com,请把#换成@,本站将给予最大的支持与配合,做到及时反馈和处理。关于更多版权及免责申明参见 版权及免责申明