学习笔记:树莓派与STM32的UART通信

 一、树莓派GPIO设置

树莓派4B一共包含两个串口,一个是硬件串口(/dev/ttyAMA0),一个是mini串口(/dev/ttyS0)。硬件串口因为使用其单独的时钟源,性能高,稳定可靠,成为使用较为广泛的串口;另一个mini串口性能低,功能简单,但是没有单独的时钟源,会受到内部时钟的影响,树莓派本身运行linux系统,由CPU内核时钟提供时钟源会造成卡顿等致命错误,所以为了稳定,我们使用硬件串口。

1.树莓派串口介绍

 在树莓派4B上,引脚8和引脚10分别为发送端TXD和接收端RXD,也是作为主串口的收发端。

而且树莓派的串口还分为主串口(serial0)和辅助串口(serial1),这里我们选择使用主串口和硬件串口,标识符为ttyAMA0和serial0。

2.配置UART串口

第一步,我们需要在树莓派端打开串行端口选项,如下图所示:

 如图确保Serial Port处于enable状态,点击OK,再点击Yes重启树莓派。

重启树莓派之后,打开终端输入 ls /dev -al ,查看所有串口映射,如下图所示:

 下拉找到这一行

 此时我们可以发现我们的serial0,也就是主串口映射为ttyS0,也就是主串口指向的是mini串口,前文我们提到mini串口效率低不稳定,所以这里我们需要将主串口指向硬件串口,也就是ttyAMA0

打开终端,输入 sudo nano /boot/config.txt ,滚轮到末尾最下方,加入这两行内容:

dtover lay=pi3-miniuart-bt

force_turbo=1

 然后保存,再退出。此时再次打开终端输入 ls /dev -al ,可以看到串口映射已经被强制更改过来,主串口Serial0已经指向了硬件串口ttyAMA0。

 OK,上述步骤完成后,串口功能基本已经配置好。百度教程还有 sudo raspi-config 的配置,这一步在我们第一步配置就已经完成,到这里配置串口结束。

3.安装mini串口调试助手

打开终端,输入 sudo apt-get install minicom 等待安装完成,过程中提示就不用多说了,Y。

 我这里已经安装完成。接下来就是使用串口助手。

在终端输入命令: minicom -D /dev/ttyAMA0 -b 115200  ,回车即可进入。

这里 -D /dev/ttyAMA0 就是指向我们打开的串口端口号,和COM1这种是一样的, -b 115200是配置波特率,这一项我们在minicom中输入 Ctrl+A 在下方也是可以看到我们的波特率的,如果不设置 -b ,波特率默认会是115200,可以动手尝试一下。

 这里我遇到了一个问题,就是提示打开 ttyAMA0 的时候没有权限,如果你也遇见了没有权限打开tty8的这种提示,打开终端输入 sudo chmod 777 /dev/ttyUSB0 ,这里的 ttyUSB0 对应你提示没有权限的串口,然后回车就OK解决了。minicom打开之后如上图。

我打开minicom串口助手的时候,会发现键盘失灵,就是在minicom下,键盘跟没插似的。如果你没有遇到这种情况,就可以跳过这一小节。

查阅文档,发现文档里有这一点Note:

Note: If you haven't configured minicom before (i.e: first use after installation), or if you find that your keyboard key presses are not sent to the RPi, you should make sure Hardware Flow Control is disabled. See Tedious Old-Fashioned Way Using

提示我们要确保禁用硬件控制流,OK,照着文档完成。

(1)首先在minicom串口中按下Crtl+A,然后单击 Z 进入帮助选项:

 (2)点击 O 进入Configure Minicom选项

(3)选择Serial port setup选项,按下 F 将 Hardware Flow Contorl 改为No,即禁用硬件流,然后退出,大功告成。

 注意:如果你和我一样,在minicom中连 Crtl+A 都无法显示的话,打开终端,输入

sudo minicom -s,进入(2)中,然后继续操作就完事了。

好了,到这里所有配置已经结束,接下来就可以验证了。

4.串口调试

我们把USB转TTL的TXD接入树莓派的RXD,把USB转TTL的RXD接入树莓派的TXD,然后将GND相连接,插入电脑的USB接口中,打开电脑上的串口助手,同时打开树莓派端的minicom。

 可以看到,通讯已经成功。如果你的minicom输入的时候没有显示,按下Crtl+A ,然后按 E 就可以打开回显功能。

OK,树莓派的UART通讯串口已经调试成功,接下来就是与STM32进行通讯。

二、树莓派与STM32通信

在完成树莓派的串口配置后,我们只需要将STM32的GPIO引脚进行配置,然后将STM32的TX和RX 与 树莓派的 RX 和 TX 用杜邦线连接,然后在STM32里烧录好程序,我们便可以看到双方通信的结果。

 这里我使用了STM32的GPIO9和10进行USART通讯,这里要注意我们STM32里的程序配置的波特率和树莓派打开minicom串口时的波特率要保持一致。OK,我们来验证结果,这里我用的是MPU6050的模块来输出X、Y、Z三轴的输出。

 OK,大功告成!

 

物联沃分享整理
物联沃-IOTWORD物联网 » 学习笔记:树莓派与STM32的UART通信

发表评论