树莓派5串口通信stm32
时间: 2025-04-29 09:42:37 浏览: 48
### 树莓派5与STM32之间的串口通信
#### 配置硬件连接
为了实现树莓派5与STM32的UART通信,仅需通过杜邦线直接连接两者即可完成基本设置[^2]。具体来说:
- TXD(传输端)引脚应从树莓派连至STM32的RXD(接收端)
- RXD(接收端)引脚则由树莓派接往STM32的TXD
- GND(接地)两端务必相连以确保信号稳定
#### 软件编程准备
对于STM32而言,在发送数据前要确认其USART外设已被正确初始化并配置好波特率等参数。下面给出了一段简单的C语言代码片段来展示如何让STM32向树莓派依次发送字符'1','2','3','4'[ ^3]:
```c
// 发送单个字节给树莓派
USART_SendData(USART1, '1');
while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);
delay_ms(1000);
USART_SendData(USART1, '2');
while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);
delay_ms(1000);
USART_SendData(USART1, '3');
while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);
delay_ms(1000);
USART_SendData(USART1, '4');
while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);
delay_ms(1000);
```
这段程序会每隔一秒发出一个新的ASCII码表示的数字。
至于树莓派这边,则可以利用Python编写一段监听来自STM32的数据流的小工具[^3]。这里提供了一个基础版本的例子供参考:
```python
import serial
ser = serial.Serial('/dev/ttyS0', baudrate=9600)
try:
while True:
if ser.in_waiting > 0:
line = ser.readline().decode('utf-8').rstrip()
print(f"Received from STM32: {line}")
finally:
ser.close()
```
此段Python脚本将持续读取TTY设备上的输入直到遇到异常情况为止;期间任何收到的信息都会被打印出来以便观察效果。
#### 测试验证过程
当上述准备工作完成后就可以开始尝试进行实际的数据交换了。启动双方各自的软件部分之后,应该能够在终端界面上看到预期的结果——即每秒钟一次自增变化着的一系列整数显示在屏幕上。这表明整个系统的搭建工作顺利完成并且正常运作中。
阅读全文
相关推荐

















