|
在本篇文章中,您将了解到树莓派(Raspberry Pi)串口通信的基础知识,以及如何使用串口通信将Raspberry Pi连接到Arduino开发板或PC。
什么是串口通信? 串口通信(UART)是最流行的通信协议之一。大多数处理器都支持这种双线连接。此外,许多模块和传感器使用串口通信连接到其他设备。
串口通信只需要两根线;一个用于传输数据,另一个用于接收数据。
此协议中的数据传输速率称为波特率(Baud rate)。波特率的单位是每秒位数。
Raspberry Pi板有两种类型的UART通信。一个称为PL011,另一个称为miniUART。具有蓝牙/无线模块的Raspberry Pi开发板,默认情况下使用PL011进行UART通信。
注意:所有Raspberry Pi引脚(包括RX和TX引脚)的电压电平为3.3伏。因此,要将具有5伏电压电平的器件连接到Raspberry Pi,您应该使用电压电平转换器或电阻分流电路。
您可以查看Raspberry Pi网站,了解有关Raspberry Pi串口通信的更多信息
所需的材料 ● 树莓派3B或B+ ● Arduino UNO R3开发板 ● TTL转USB转换器 ● 公对母跳线 ● 面包板 ● 1K电阻 ● Arduino IDE ● 串口终端
Raspberry Pi和PC之间的串口通信 要在Raspberry Pi板和PC之间建立串口通信,您需要一个串口转USB转换器。
电路连接
按照以下步骤启动Raspberry Pi UART通信: 步骤1:将串口转USB转换器连接到Raspberry Pi开发板,如电路连接图中所示。然后插入Raspberry Pi电源并将转换器连接到PC。 步骤2:转到设备管理器,找到连接到转换器的端口号。
步骤3:打开终端软件并对配置进行设置。
步骤4:在Raspberry Pi中启用UART。
打开Raspberry Pi终端并输入以下命令。 1. 使用以下命令在nano编辑器中打开config.txt文件。 - sudo nano /boot/config.txt
复制代码将以下代码添加到文件末尾。 - Enable UART
- enable_uart=1
复制代码然后按Ctrl + x并按Y保存文件并关闭。
2. 重新启动Raspberry Pi。 3. 检查计算机上的终端软件
4. 断开Raspberry Pi与蓝牙模块之间的串口通信。 - sudo systemctl disable serial-getty@ttyS0.service
复制代码5. 在nano编辑器中打开cmdline.txt。 删除“console = serial0,115200”行并保存文件。 - sudo nano /boot/cmdline.txt
复制代码6. 再次重新启动Raspberry Pi。 7. 在Raspberry Pi上安装minicom终端。 - sudo apt-get install minicom -y
复制代码
以下命令打开minicom终端,将波特率设置为115,200,并启动串口通信。 - minicom -b 115200 -o -D /dev/ttyS0
复制代码执行此命令后,您应该看到以下窗口。
现在,您可以测试Raspberry Pi和PC之间的串口通信。
注意:如果要查看在minicom终端中写入的命令,则需要按Ctrl + A然后在minicom终端中输入E来启用Echo模式。
要退出minicom,请先按Ctrl + A然后输入X.
Raspberry Pi和Arduino之间的串口通信 您可以使用USB线将Arduino开发板连接到Raspberry Pi。这样,您可以向Arduino提供电源电压,还可以通过串口在Arduino和Raspberry Pi之间传输信。
使用以下命令,您可以以9600 bit / sec的波特率打开minicom终端。 - minicom -b 9600 -o -D /dev/ttyUSB0
复制代码
现在,您可以将代码上传到Raspberry Pi开发板上,然后在Raspberry Pi和Arduino之间传输信息。
以下代码将您在minicom终端中写入的任何文本从Raspberry Pi发送到Arduino。然后Arduino将相同的文本返回给Raspberry Pi。 - void setup() {
- // put your setup code here, to run once:
- Serial.begin(9600);
- }
-
- void loop() {
- // put your main code here, to run repeatedly:
- if(Serial.available()) {
- String s = Serial.readString();
- Serial.print("Arduino: ");
- Serial.println(s);
- }
- }
复制代码
以上就是本文的全部内容。如遇到任何问题,请随时在本帖下面进行回复。 |