MangoPi Pro(Ubuntu Server 22.04)物理串口收发配置咨询
配置MangoPi Pro(Ubuntu Server 22.04)板载串口实现数据收发
1. 确认串口设备节点
首先找到板载串口对应的设备文件:
- 执行命令查看所有串口设备:
ls /dev/ttyS* /dev/ttyAMA* - 或者通过内核日志确认串口识别情况:
dmesg | grep tty
通常MangoPi Pro的板载串口对应/dev/ttyS0或/dev/ttyAMA0,后续操作以/dev/ttyS0为例,实际根据你的设备调整。
2. 禁用串口控制台(关键步骤)
Ubuntu Server默认可能将板载串口用作登录控制台,这会干扰数据收发,需要禁用:
- 编辑GRUB配置文件:
sudo nano /etc/default/grub - 修改以下两个参数,移除其中包含
console=ttyS0,xxx(xxx为波特率)的内容:GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" GRUB_CMDLINE_LINUX="" - 更新GRUB使配置生效:
sudo update-grub - 停止并禁用serial-getty服务:
sudo systemctl stop serial-getty@ttyS0.service sudo systemctl disable serial-getty@ttyS0.service - 重启系统:
sudo reboot
3. 配置串口参数
串口参数(波特率、数据位、停止位、校验位)必须与通信设备一致,以下以常用的115200波特率、8位数据位、1位停止位、无校验为例:
临时配置(重启后失效)
stty -F /dev/ttyS0 115200 cs8 -cstopb -parenb
参数解释:
115200:波特率cs8:8位数据位-cstopb:1位停止位-parenb:无奇偶校验
永久配置(重启后保留)
创建udev规则:
sudo nano /etc/udev/rules.d/99-serial.rules
添加以下内容:
ACTION=="add", KERNEL=="ttyS0", RUN+="/bin/stty -F /dev/ttyS0 115200 cs8 -cstopb -parenb"
重载udev规则:
sudo udevadm control --reload-rules && sudo udevadm trigger
4. 解决权限问题
当前用户默认可能没有访问串口设备的权限,将用户加入dialout组:
sudo usermod -aG dialout $USER
执行后重新登录用户,权限即可生效。
5. 测试串口收发
测试发送
向串口发送测试数据:
echo "Hello Serial" > /dev/ttyS0
测试接收
监听串口接收数据:
cat /dev/ttyS0
此时从对方设备发送数据,终端会显示接收到的内容,按Ctrl+C停止监听。
用minicom工具测试(可选)
安装minicom:
sudo apt update && sudo apt install minicom
启动minicom连接串口:
minicom -D /dev/ttyS0 -b 115200
进入后即可直接收发数据,按Ctrl+A再按Z可打开操作菜单,选择X退出。
内容的提问来源于stack exchange,提问作者aref niki
相关产品推荐
相关产品推荐

