1、树莓派串口映射设置
运行以下命令:
ls /dev -al
出现串口映射的情况,但是此时是在默认状态下,serial0(就是GPIO14,15)是映射到ttyS0的,serial1(跟板载蓝牙相连)映射到ttyAMA0,ttyAMA0是硬件串口,它的时钟频不受CPU影响。也就是和现在图中的两个串口映射刚好相反(默认情况下的没截图)。
图1 最终交换映射的效果
一般串口都是用的ttyAMA0,要想和GPIO接,需要把映射状态调换一下。执行以下操作。
(1)打开串口调试
sudo raspi-config
图2 选择5,回车
图3 选择P6,回车
图4 选择否,回车
图5 选择是,回车
图6 确定,回车
最后选择finish退出即可。
(2)设置文件中添加 pi3-miniuart-bt
sudo nano /boot/config.txt
在最后一行添加:dtoverlay=pi3-miniuart-bt
("pi3-miniuart-bt"是在文件夹/boot/overlays下。)
重启之后,就可以看到图1中的交换结果了。
2、设置串口通信
sudo nano /boot/cmdline.txt
删掉一些干扰信息之后,成为下图所示:
console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
3、测试
(1)安装minicom,类似于串口助手
sudo apt-get install minicom
(2)运行以下命令进行设置:
sudo minicom -s
(3)运行minicom
sudo minicom -D /dev/ttyAMA0 -b 15200
同时按下ctrl+A,然后按E,就能看到串口接收到的信息。
这一步骤可以暂时跳过,只要在代码运行的前一步开启即可。
4、通过代码发出消息
import time
import serial
ser = serial.Serial(
port='/dev/ttyAMA0',
baudrate=115200,
parity=serial.PARITY_NONE,#可以不写
stopbits=serial.STOPBITS_ONE,#可以不写
bytesize=serial.EIGHTBITS,#可以不写
timeout=1)
while 1:
ser.write(b'Hello\n')
time.sleep(1)
5、树莓派的两个串口短接
用一根杜邦线将GPIO14,15连接。
然后开启minicom,按下ctrl+A,然后按E(如果消息内容太长,一行放不下,按下ctrl+A,然后按W,就可以实现换行)。运行4中的代码,然后就可以在minicom的终端看到发出的消息。
可以实现一个简单的收发过程。需要实现其他功能的,代码自行优化。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)