通过MicroPython在Raspberry Pi Pico上使用UART字节进行写入和读取TCA9555的示例代码:
1.Raspberry Pi Pico的UART0被配置为9600波特率,并连接到TCA9555。
2.使用了默认的GPIO引脚0和1作为UART的TX和RX引脚。
3.TCA9555的地址为0x20。
from machine import UART, Pin
# 初始化UART
uart = UART(0, baudrate=9600, tx=Pin(0), rx=Pin(1))
# TCA9555地址
TCA9555_ADDR = 0x20
# 控制字节:设置P00至P07为输出,P10至P17为输入
CONTROL_BYTE = 0xFF
# 输入极性控制字节:默认情况下,不进行输入极性翻转
INPUT_POLARITY_BYTE = 0x00
# 写入函数
def tca9555_write(reg, value):
uart.write(bytes([TCA9555_ADDR << 1, reg, value]))
# 读取函数
def tca9555_read(reg):
uart.write(bytes([TCA9555_ADDR << 1, reg]))
return uart.read(1)
# 主函数
def main():
# 配置控制字节
tca9555_write(0x03, CONTROL_BYTE)
# 配置输入极性控制字节
tca9555_write(0x06, INPUT_POLARITY_BYTE) # 端口0的输入极性控制字节
tca9555_write(0x07, INPUT_POLARITY_BYTE) # 端口1的输入极性控制字节
# 测试
# 向TCA9555的寄存器0x00写入一个字节数据0x0F
tca9555_write(0x00, 0x0F)
# 从TCA9555的寄存器0x00读取一个字节数据
data_read = tca9555_read(0x00)
print("Data read from TCA9555:", data_read)
if __name__ == "__main__":
main()