文件名称:
分享自己的串口接收GUI可实时观察数据图像-(STM32)ADC DMA USART(仅必须的C文件不含工程).rar
开发工具:
文件大小: 16kb
下载次数: 0
上传时间: 2019-08-12
详细说明: 分享自己的串口接收GUI可实时观察数据图像-ADC DMA USART.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一直不知道错在哪)
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.
相关搜索: