树莓派3B+ 的串口配置和使用教程

树莓派3B+ 串口使用

配置并修改文件

  • 打开命令行输入 :
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 #关闭
  • 4
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值