目录
前言:本次博客为JY901B的一个学习记录,因为在学习的过程中看了很多博客,也找了很多代码,要不就是代码是老古董(是标准库的不是HAL库的,直接操作寄存器,太复杂了尤其是对于小白很不友好,如有需要我把相关能使用的代码都打包,自取),要不就是用不了
目的:主要是展示如何读取JY901B的数据并将其串口打印以及使用VOFA+进行波形显示涉及知识:STM32 USART串口通信
软件:Keil5+STM32CubeMX
硬件:JY901B+STM32C8T6+USB转TTL+STLink
1. JY901B数据手册
来源自维特智能官网,很详细,链接如下:
JY901B产品规格书 (yuque.com)https://wit-motion.yuque.com/wumwnr/docs/mpvp3c
2. 解决思路
// 主要是展示我如何解决这个这个问题的思路的
1. 我拿到手上的硬件是已经和STM32芯片焊接好的模块,
因此我法直接使用USB转TTL模块查看JY901B发送的信息,直观的去查看数据是什么,
但不影响,一方面网上可以找到相关的实验现象,
其次根据官方提供的文档“WIT私有协议”我们也能查看到数据包的内容。
![](https://i-blog.csdnimg.cn/blog_migrate/a3013e7ebcc0c2d66245cc3adc7a68c0.png)
2.思考STM32芯片,JY901B,串口一,串口二到底是什么关系?
3.了解到了他们的关系怎么实现呢?
首先,JY901B到STM32会按照官方的通信协议(WIT私有协议)进行数据传递,
那我们就要对于这个数据包解析,他到底发送过来的数据是什么形式的,
大思路肯定就是接收了管他三七二十一先用函数放到数组中,然后再对数据进行处理打印。
不过这三七二十一还是得有一定的准度的,不能完全接收错误的内容是吧
从文档中我们了解到他的协议,即数据包的结构,由此我们就能准确的得知数据包的格式。那么只要打开串口二中断接收,判断帧头以及帧尾我们就能接收好数据了。
4.接收好了数据我们把它存在数组中,再根据文档上的处理方式,我们就得到了想要的数据。
那么再通过串口一打印就好,这里提到了VOFA+通过波形展示,不用写什么额外的通信协议,
你串口打印就能观察到波形,详细的可见VOFA+的操作手册。
快速开始 | VOFA-Plus上位机https://www.vofa.plus/docs/learning/start/quick_start/
3. 代码解读
STM32CubeMX方就是常规的打开串口的操作,如不懂可以搜一下相关博客,很多写的
Keil5方的话最重要的就是串口的中断处理,我的代码我将中断处理写在了my_usart里面,JY901B的话主要就是一个校验的计算函数,然后就是在mian里面串口1打印。