Raspberry Pi B的UART极简例程

本文介绍如何在Raspberry Pi上使用WiringPi2-Python库进行串口编程。首先通过命令行安装必要的软件包,接着创建并设置Python脚本来打开串口并与外部设备通信。该教程适用于希望利用Raspberry Pi进行简单串口数据交换项目的初学者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、安装WiringPi2-Python

执行以下命令:

sudo apt-get update
sudo apt-get install python-dev python-pip
sudo pip install wiringpi2

二、编辑Python代码

创建如下Serial.py文件,并增加可执行权限:

#!/usr/bin/env python
import wiringpi
wiringpi.wiringPiSetup()
serial = wiringpi.serialOpen('/dev/ttyAMA0',9600)
wiringpi.serialPuts(serial,'Hello World!')

三、连接硬件并执行程序

按照管脚图接好杜邦线,然后执行Serial.py程序:
Raspberry Pinout

本文参考链接:
UART at Raspberry Pi GPIO Pinout
How to install WiringPi2 for Python on the Raspberry Pi

### 使用 SIO 作为 UART_RX 的示例 对于基于 RP2040 芯片的微控制器,当使用 Simple Input Output (SIO) 功能来处理 UART 接收时,可以通过配置 GPIO 来实现这一功能。下面是一个单的 Python 示例代码片段,展示了如何利用 MicroPython 或 C SDK 配置并读取来自 SIO 的 UART 数据。 #### MicroPython 实现方式 ```python from machine import Pin, UART # 初始化 UART 和对应的引脚 uart = UART(0, baudrate=9600, tx=Pin(0), rx=Pin(1)) while True: if uart.any(): # 如果有数据可读 data = uart.read() # 读取所有可用的数据 print(data.decode('utf-8')) # 打印接收到的信息 ``` 这段代码初始化了一个 UART 对象,并指定了 TX 和 RX 引脚分别为 GPIO0 和 GPIO1[^1]。`any()` 方法用来检测是否有未读取的数据等待被接收;如果有,则调用 `read()` 函数获取这些数据,并将其解码为字符串形式打印出来。 #### C SDK 实现方式 以下是采用 Raspberry Pi Pico SDK 编写的 C 语言版本: ```c #include "pico/stdlib.h" #include "hardware/uart.h" int main() { stdio_init_all(); // 设置 UART 参数 uart_init(uart0, 9600); gpio_set_function(PICO_DEFAULT_UART_TX_PIN, GPIO_FUNC_UART); // 默认为GPIO0 gpio_set_function(PICO_DEFAULT_UART_RX_PIN, GPIO_FUNC_UART); // 默认为GPIO1 while (true) { if (uart_is_readable(uart0)) { // 检查是否可以从UART读取数据 uint8_t ch; size_t count = uart_read_blocking(uart0, &ch, 1); // 尝试阻塞式读取单字节 if(count){ putchar(ch); // 输出字符到标准输出设备(通常是USB串行) } } } } ``` 此程序同样设置了 UART 到指定波特率,并将相应的 GPIO 引脚分配给 UART 功能。它持续监听输入端口上的活动,一旦发现新到达的数据就立即显示在终端上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值