对于STM32来说,串口通讯是非常重要的一种通讯方式,而串口上位机也是一个非常重要的数据可视化的手段。如果利用传统的方式进行串口通讯以及上位机的编写,对于一个新手来说将会非常痛苦,没有非常好的C语言基础,你完全写不出来。但是你认真看我这篇教程,我相信你能够在半个小时之内学会玩配置硬件上的串口通讯,以及配套的串口上位机,实时的数据可视化。
本节教程将会给大家如何在simulink上面配置STM32的串口通讯,以及在simulink上面搭建一个串口上位机,实时读取数据。
首先我们打开simulink,打开我们上个教程所说的支持库,点击UART,里面有三个图形控件,每个控件建议大家都用help查看一下是什么,我就不用一个一个详细解释了,help里面讲得非常清楚,有不懂的问题请留言,我会尽我所能回答疑问
下图的三个控件可以完成所有STM32F4的串口通讯操作,而且非常方便就可以实现
这个控件主要是配置你要用串口(1|2|3),配置波特率,以及选择你对应串口的IO口。
如图就是本项目的配置情况
这个控件有多种数据串口发送方式,大家在help里面看一下,这里主要给大家展现一个二进制向量的形式,如何同时发送多个变量
配置如图所示
最后有个Sample time:这里的设置是多少时间发送一次数据,比如你设置0.1,就是每0.1秒发送一次数据
最后整个工程如图所示,加上闪烁灯,方便知道程序是否在正常运行 (Vector Concatenate:是用来把多个变量组成一个行向量)
底层串口配置到这里就完成了,下载到你对应的程序中就可以看到灯在闪烁,但是是否在发送成功呢,发出来的两个数值进行一个对一个接受呢,不急不急,接下来我们来搭建一个simulink的上位机,进行我们发送数值的查看
首先我们修复一个官方出来的库的一个bug,
https://download.csdn.net/download/weixin_36967309/10393078
(对应的资源在文章最后有链接下载,如果不能下载不了留言问我要)
Description:
- Apply to waijung 17.03a
- Fix crashing when communicate with USART block.
1. Close MATLAB program, if it running.
2. Replace (Overwrite) the following file in to directory: \waijung_17_03a\src\blocks
2.1 amg_usbconverter_n_connect.mexw32
2.2 amg_usbconverter_n_connect.mexw64
根据上面的信息,复制粘贴,替换对应官方库的两个文件
然后点击如图的三个控件就在simulink 上面建立所有的串口通讯上位机操作
如图为本教程对应控件的设置
如图为上位机的全部构成,点击运行就可以看到,对应的数值了,(1对应1,2对应2)