I2C与串口基础函数
使用基础函数需要通过命令安装以下依赖,请提前参见 配置网络 章节为开发者套件共享网络。
安装smbus2库。
conda install -c conda-forge smbus2
安装pyserial模块。
pip install pyserial
- 从设备的地址以及寄存器地址均可以通过I2C-tools查到,如果是标准设备,一般会有统一的地址。
| 命令/代码 | 说明 |
|---|---|
import smbus2 | 导入smbus2库。 |
bus = smbus2.SMBus(7) | 初始化I2C总线,7表示默认I2C总线为i2c-7。 |
read_byte_data(i2c_addr) | 从设备读取一个字节,i2c_addr为查到的从设备地址。 |
write_byte_data(i2c_addr) | 向设备写入一个字节。 |
read_word_data(i2c_addr, register) | 从给定的寄存器中读取一个字(2个字节),register为从设备寄存器地址。 |
write_word_data(i2c_addr, register) | 将一个字(2个字节)写入给定的寄存器。 |
开发者套件的40Pin接口上默认串口为引脚8(UART0_TX)、10(UART0_RX),对应的串口号为“/dev/ttyAMA0”。也可连接USB0作为串口,对应的串口号为“ /dev/ttyUSB0”。
| 命令/代码 | 说明 |
|---|---|
import serial | 导入pyserial模块。 |
ser=serial.Serial("/dev/ttyUSB0",115200) | 使用USB连接串行口,打开串行口,设置波特率。 |
ser=serial.Serial("/dev/ttyAMA0",115200) | 使用开发者套件GPIO口连接串行口,打开串行口,设置波特率。 |
ser=serial.Serial("com3",115200) | Windows系统使用com3口连接串行口, 打开串行口,设置波特率。 |
ser.readline() | 读一行数据,以“/n”结束。 |
ser.read(n) | 读n个字符。 |
data = “Hello!” ser.write(data.encode()) | 写入二进制编码的字符串数据。 |