欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

STM32F4解析测深仪和AirMar数据

程序员文章站 2024-02-22 18:48:16
...
    AirMar气象站和测深仪传输数据采用NEMA0183协议进行传输的,传输的数据每秒钟更新一次。STM32F4端采用串口中断的方式接收数据,然后将每秒钟传输的数据用SD卡存储,通过串口一发送到上位机显示。重要数据通过OLED显示在显示屏上面。整体框架和代码会在后面介绍,里面涉及到个人编写请不要用于商业用途,翻版必究!!!
一路项目坐下来,踩过很多坑,希望最后代码能够帮助大家少走弯路。实测工作10分钟没有任何问题。接下来一块块来详细介绍项目工作。
整体项目硬件连接图如下图所示:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20191208190229454.PNG?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzQ4NTk2OQ==,size_16,color_FFFFFF,t_70)

AirMar与STM32F4硬件具体连线图如下图所示:
STM32F4解析测深仪和AirMar数据
测深仪与STM32F4硬件具体连接线图如下图所示:
STM32F4解析测深仪和AirMar数据
硬件完成之后就是软件设计,软件部分的流程图如下图所示:
STM32F4解析测深仪和AirMar数据
软件部分具体解析NEMA0183协议的代码可以仔细看代码,里面有解释,在HUST_SHIPPING文件夹的communication.c文件里面;STM32F4把数据显示在OLED显示屏上面,里面添加了显示字符,以及加入浮点数的显示,具体见HUST_SHIPPING文件夹的OLED.c文件里面,显示图片如下图所示(请大家见谅,英文不是太好,用的中文进行命名);
STM32F4解析测深仪和AirMar数据
本次主要介绍一下SD卡储存数据,此处个人走了很多弯路,这是总结的流程图如下图所示,刚开始数据传输数量很奇怪,后来参考一位大神F1代码之后进行修改,最后就成功了。
STM32F4解析测深仪和AirMar数据
SD卡可以做到每秒更新一组数据,主要是我用的AirMar气象站有一个GPGGA协议,里面包含时间,具体SD卡储存数据截图如下:
STM32F4解析测深仪和AirMar数据
将数据通过串口发至上位机的时候,串口连续发送的数据的时候,一定要加延时在里面,否则会出现乱码。传输波特率为115200,则一个字节所需时间:1*8/115200=69us,程序执行时间小于69us,因此会出现乱码,因此要延时100us。
详细代码请搜索STM32F4解析测深仪和AirMar数据。
————————————————
版权声明:本文为CSDN博主「想学技术的萌新」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_43485969/article/details/103447898