配置并修改文件
- 打开命令行输入 :
sudo systemctl disable hciuart
这样便禁用了蓝牙
- 然后输入:
sudo nano /boot/config.txt
在最后一行加入 dtoverlay=pi3-miniuart-bt
,保存修改并退出。
- 继续输入
sudo raspi-config
将串口配置为Enable
状态,然后重启。
- 重启后打开命令行输入 :
sudo vim /boot/cmdline.txt
- 删掉里面类似于的
console=serial1,115200
的内容,用delete键就行,然后按ctrl+c,输入:w
保存修改,用:q
退出vim。
否则的话后面会报错:Permisson denied。 - 回到命令行,继续输入
python3
然后会返回版本号。
- 继续输入
import serial
ser=serial.Serial('/dev/ttyAMA0',115200)
设置波特率115200,第三个是校验位,这里我没填。然后可以检查串口是否打开:
ser.isOpen()
命令行会返回True
- 连接树莓派和串口调试工具,两个设备之间TXD连RXD,RXD连TXD,然后GND连GND。
打开串口调试助手,设置波特率115200。
- 在命令行继续输入
ser.write(b'serial test')
命令行会返回 11
,串口调试助手会输出serial test
,如下:
- 完成树莓派串口输出
创建一个py文件
import serial #串口
import time #后面延时使用
ser=serial.Serial('/dev/ttyAMA0',115200)#波特率115200 无校验
if ser.isOpen == True:
ser.open()
ser.write(b'serial test') #输出
try:
while True:
data=ser.inWaiting()#获取缓冲区字符
if data !=0:
sh=ser.read(data)#读取内容
print(sh)
ser.flushInput()#清空缓冲区
time.sleep(0.1) #延时
except KeyboardInterrupt:
ser.close #关闭
如果要输出一串十六进制的数组
可以这样:
import serial #串口
import time #后面延时使用
def send_byte():
jy=[0xFF,0xAF,0x01,0x55];
ser.write(bytes((jy)[:len(jy)]))
time.sleep(0.1)
ser=serial.Serial('/dev/ttyAMA0',115200)#波特率115200 无校验
if ser.isOpen == True:
ser.open()
ser.write(b'serial test') #输出
try:
while True:
send_byte()
data=ser.inWaiting()#获取缓冲区字符
if data !=0:
sh=ser.read(data)#读取内容
print(sh)
ser.flushInput()#清空缓冲区
time.sleep(0.1) #延时
except KeyboardInterrupt:
ser.close #关闭