多弗朗强哥

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: :: :: 管理 ::
  297 随笔 :: 0 文章 :: 7 评论 :: 27万 阅读
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

目标:树莓派通过串口发送字符's',Arduino收到后字符's'后打印字符串'I AM CDQ',同时arduino自带的13引脚LED灯会闪烁。

这篇写的有点乱,有不清楚地方请向我反映,我会及时修改。

一、Arduino程序

在arduinoIDE中编写程序

void setup()
{
  Serial.begin(115200);
  pinMode(13,OUTPUT);
  }
void loop()
{
  if(Serial.available())
  {
    if('s'==Serial.read())
    Serial.println("I AM CDQ");
    digitalWrite(13,HIGH);
    delay(500);
    digitalWrite(13,LOW);
    delay(500);
    }
  
  }

将程序烧写到Arduino中,
然后将USB口从电脑上拔掉,插到树莓派USB上,否则串口会被占用。

二、开启树莓派串口

树莓派有两个串口,一个是mini,一个是AMA0,mini是自带晶振驱动的,稳定性不高,AMA0是外部晶振驱动的,稳定性高,因此这里将启用AMA0串口。

使用nano编辑器打开启动命令文本:

sudo nano /boot/cmdline.txt

将内容修改为:
ddwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=vator=deadline rootwait quiet splash plymouth.ignore-serial-consoles
Ctrl+x
y
回车
输入:

sudo nano /etc/inittab

注释最后一行,如果没有则不用修改:
#T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

查看串口是否启用

ls -l /dev

如果没成功,则参考【文献1】再设置一遍。

三、下载串口调试助手minicom

不要指望他会有什么好看的画面,哈哈哈。
安装minicom

sudo apt-get install minicom

启动minicom

minicom -b 115200 -o -D /dev/ttyAMA0

发送测试信息,如abc:
如果回显开启,则你输入一个字母他也同样输出相同的字母,效果为aabbcc,
如果此时没有出现aabbcc,则可能是回显没有打开,Ctrl+a,再按e,打开回显,再次测试。

或者连接好树莓派与arduino的串口后输入s,看minicom是否有返回I AM CDQ

树莓派与Arduino的接线方式为:

树莓派 arduino
8脚(TXD) 0脚(RX)
10脚(RXD) 1脚(TX)
usb口 下载线

四、树莓派程序

在树莓派桌面新建ser.py文件

import serial
ser=serial.Serial('/dev/ttyAMA0',115200,timeout=1)

try:
    while 1:
        ser.write('s')
        response=ser.readall()
        print (response)
except:
    ser.close()

不要使用Thonny软件运行此程序,因为看不到输出。

/home/pi/Desktop
sudo python ser.py

此时应该就会看到:

同时,arduino的灯会闪烁。

参考文献:

  1. 树莓派3b与电脑串口互相通信进行数据传输的配置过程
  2. 树莓派开发笔记(六):GPIO口的UART使用
  3. 树莓派与arduino串行通信
  4. 两大开源硬件之树莓派与Arduino的USB串口通讯
posted on   多弗朗强哥  阅读(1271)  评论(1编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?
点击右上角即可分享
微信分享提示