树莓派串⼝通信python函数_树莓派串⼝通信
树莓派的串⼝默认为串⼝终端调试使⽤,如要正常使⽤串⼝则需要修改树莓派设置。关闭串⼝终端调试功能后则不能再通过串⼝登陆访问树莓派,需从新开启后才能通过串⼝控制树莓派。
⼀、设置串⼝
要使⽤这个串⼝,必须先进⾏设置:
python怎么读取串口数据1.执⾏如下命令进⼊树莓派配置
sudo raspi-config
选择Advanced Options->Serial ->no关闭串⼝调试功能
2.修改/
输⼊下⾯指令:
sudo nano /
删除划线斜体部分:
dwc_otg.lpm_enable=0console=ttyAMA0,115200 kgdboc=ttyAMA0,115200console=tty1 root=/dev/mmcblk0p2
rootfstype=ext4 elevator=deadline rootwait
最终变为
dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
3.修改/etc/inittab
输⼊下⾯指令:
sudo nano /etc/inittab
注释掉最后⼀⾏内容:
#T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
OK、重启下raspberry pi现在就可以⾃⼰编写程序测试串⼝了。我是把TXD与RXD短接,实现⾃发⾃
收的。
⼆、使⽤minicom调试串⼝
设置完之后串⼝便可以正常使⽤了,便可测试⼀下树莓派的UART是否正常⼯作,Pioneer600扩展板带有USB转UART功能,⽤USB线连接到电脑。minicom便是⼀个简单好⽤的⼯具。minicom是linux平台串⼝调试⼯具,相当于windows上的串⼝调试助⼿。
1、minicom安装
sudo apt-get install minicom
2、minicom启动
minicom -D /dev/ttyAMA0
默认波特率为115200,如需设置波特率为9600加参数 -b 9600,-D代表端⼝,/dev/ttyAMA0类似于windows中的COM1,
同时在windows也打开串⼝助⼿。设置波特率为115200,选择对应的串⼝号
3、串⼝数据传输
直接在minicom控制台中输⼊内容即可通过串⼝发送数据,在windows串⼝助⼿中会接到到输⼊的内容。同理,在windows串⼝助⼿中发送数据会在minicom控制台上显⽰。如果minicom打开了回显(先Ctrl+A,再E)可在控制台中观察到输出内容,如果回显关闭minicom控制台不会显⽰你输⼊的内容。先Ctrl+A,再Q,退出minicom。
三、串⼝编程
1、wiringPi
编译并执⾏,在window下打开串⼝助⼿会接收到” Hello World”,发送数据会返回到显⽰窗⼝。gcc –Wall uart.c –o uart –lwiringPi
sudo ./uart
#include
#include
#include
int main()
{
int fd;
if(wiringPiSetup() < 0)return 1;
if((fd = serialOpen("/dev/ttyAMA0",115200)) < 0)return 1;
printf("serial test start ...");
serialPrintf(fd,"Hello World");
while(1)
{
serialPutchar(fd,serialGetchar(fd));
}
serialClose(fd);
return 0;
}
⼆、python
⾸先运⾏如下命令安装python serial扩展库。
sudo apt-get install python-serial
编写程序
#!/usr/bin/python
# -*- coding:utf-8 -*-
import serial
ser = serial.Serial("/dev/ttyAMA0",115200)
print('serial test start ...')
ser.write("Hello Wrold \n")
try:
while True:
ser.ad())
except KeyboardInterrupt:
if ser != None:
ser.close()
执⾏程序,实验结果和上⾯⼀样。
sudo python uart.py
注:(1)ser = serial.Serial("/dev/ttyAMA0",115200) 打开串⼝,波特率为115200
(2)ser.ad())接收字符并回传
(3) ser.close() 关闭串⼝
总结:通过上⾯两个程序我们可以发现和i2c⼀样,wiringPi,python程序都是读写串⼝设备⽂件/dev/ttyAMA0操作串⼝,故我们也可以通过sysfs的形式编程操作串⼝,在这⾥我就不详细介绍了。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论