树莓派与arduino都有一个串行口,都是TTL电平,可以直接连接。不同的是树莓派是5V供电,而arduino是3.3V供电。
1、连接方式:
树莓派的RX ----- arduino的TX
树莓派的TX ----- arduino的RX
树莓派的GND ----- arduino的GND
2、树莓派串行口配置
树莓派的串口在启动时默认为控制台,给SSH调试使用,若要使用串口需要修改两处文件。
【1】/boot/cmdline.txt
【输入以下指令】
sudo nano /boot/cmdline.txt
【删除红色部分】
dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
【最终变为】
dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
【2】/etc/inittab
【输入以下指令】
sudo nano /etc/inittab
【注释最后一行内容】
#T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
3、树莓派使用minicom
配置完之后便可测试一下树莓派的UART是否正常工作,而minicom便是一个简单好用的工具。minicom是linux平台串口调试工具,相当于windows上的串口调试助手。
【1】minicom安装
sudo apt-get install minicom
【2】minicom启动
minicom -b 9600 -o -D /dev/ttyAMA0
-b代表波特率,-D代表端口,/dev/ttyAMA0 类似于windows中的COM1,-o功能暂时未知。
图2 minicon界面
【3】minicom发送内容
直接在控制台中输入内容即可,如果minicom打开了回显可在控制台中观察到输出内容,如果回显关闭则控制台中没人任何反应,千万不要以为minicom没有正常工作。
【4】minicom回显控制
先Ctrl+A,再E。可翻转回显状态(原来回显打开则此事回显关闭)
【5】minicom回显关闭
先Ctrl+A,再Q。
4、树莓派使用pyserial
minicom仅满足调试用途,如果需要编程解决问题那么python的serial扩展库——pyserial则是一个不错的选择。pyserial模块非常好用,后面的文章还会分析如何使用pyserial控制GPRS模块。
【pyserial安装】
安装pyserial扩展库有很多种方法,可使用pip或者easy_install安装,也可以直接选择apt-get工具安装。
若使用apt-get工具安装,可输入以下指令
sudo apt-get install python-serial
【串口回显程序】
非常简单的一个串口程序,树莓派通过串口返回接收的内容。