官网给出的硬串口示例代码似乎有问题,故做了下修改,实现了电脑的USB与行空板硬串口通信,与其他板通信同理
修改后行空板代码如下:
1.uart1 = UART() 需要设置bus_num=0,默认是1,会导致实例化失败
2.uart1.init() 需要设置bits=8,默认居然是0,真奇怪
- [color=#000][font=Consolas, "][size=14px][color=#008000]# -*- coding: utf-8 -*-[/color]
- [color=#0000ff]import[/color] time
- [color=#0000ff]from[/color] pinpong.board [color=#0000ff]import[/color] Board, UART
-
- Board().begin() [color=#008000]#初始化,选择板型,不输入板型则进行自动识别[/color]
- [color=#008000]#硬串口1 P0-RX P3-TX[/color]
- uart1 = UART(bus_num=[color=#098658]0[/color])
- uart1.init(baud_rate = [color=#098658]9600[/color], bits=[color=#098658]8[/color]) [color=#008000]# bits缺省值居然是0,莫名其妙[/color]
-
- [color=#0000ff]while[/color] [color=#0000ff]True[/color]:
- [color=#008000]# 如果串口有数据[/color]
- [color=#0000ff]if[/color] uart1.[color=#0000ff]any[/color]() > [color=#098658]0[/color]:
- [color=#008000]#读一行,以换行符结尾。读取行或 None 超时。(到换行键(0xa)结束,无则返回None)[/color]
- data = uart1.readline()
- [color=#008000]# 参考数据 [97, 98, 99, 13, 10][/color]
- [color=#0000ff]if[/color] data:
- [color=#0000ff]print[/color](data)
- [color=#008000]# 去除尾部换行符[/color]
- data = data[:[color=#098658]-2[/color]]
- [color=#008000]# 将unicode码转为对应的字符,然后合并成字符串[/color]
- s = [color=#a31515]''[/color].join([color=#0000ff]chr[/color](code) [color=#0000ff]for[/color] code [color=#0000ff]in[/color] data)
- [color=#0000ff]print[/color](s)
-
- time.sleep([color=#098658]0.1[/color])
- [/size][/font][/color]
复制代码
电脑端使用Microsoft Store里的串口调试工具进行测试,如果行空板使用readline,务必务必务必记得串口调试工具输入框最后要按一下回车键,保证其发送换行,不然readline不会返回
线路连接(若没有扩展板,也可将线焊接到金手指上)
运行行空板程序,输出如下
|