树莓派pico入坑笔记,uart使用

 关于树莓派pico和circuitpython的更多玩法,请看树莓派pico专栏

uart原理自行百度,相关内容很多其他博主写过并且质量很高,这里不再赘述。

调用circuitpy的busio模块来使用uart,除此以外,spi、iic等要需要使用该模块,使用方法见

官方教程 ,详细信息见文档

官方的例子简洁,但没有过多其他应用的细节,主要是数据格式,发送数据方面。

收发数据的格式是字节数组,该类型要求数据不可变,因此如果要修改,需要额外新建,然后将其转换为字节数组。

然后是注意bytearray方法,它要求输入参数是可迭代对象,建议使用列表。

在初始化时,使用busio.UART()方法创建uart对象,参数列表为TX,RX ,波特率,可以参考引脚图选择功能引脚。

代码

import board
import busio
import digitalio

# For most CircuitPython boards:
led = digitalio.DigitalInOut(board.LED)

led.direction = digitalio.Direction.OUTPUT
uart = busio.UART(board.GP12, board.GP13, baudrate=9600)#格式: tx rx 波特率

while True:
    data = uart.read(32)  # 读最多32字节数据
    # print(data)  # 数据是字节数组
    if data is not None:
        #清空缓冲区的剩余数据
        uart.reset_input_buffer()
        led.value = True
        d=bytearray(data)# 把数据转换为字节数组,要求数据是可迭代对象,如列表
        #也可以使用字符串-字节串转换方法,本文使用ascii编码
        # d=data.encode('ascii')
        # d=bytearray([data[0]+1])#返回加一的数据,注意字节数组不可变
        uart.write(d)# 写数据
        # 把字节数组转换为字符串
        data_string = ''.join([chr(b) for b in data])
        #也可以使用字符串-字节串转换方法,本文使用ascii编码
        #data_string =data.decode('ascii')
#         print(data_string, end="")
        print(data_string," ",d,end='\n')
        led.value = False

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只川页

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值