MicroPython内核开发笔记书内软件用例 :UART相关实验

简 介: 本文给出了 MicroPython内核开发笔记:书内嵌入实验任务 中的 UART 部分软件用例部分内容。

关键词 MicroPythonMM32F3277

书稿内容
目 录
Contents
基础实验
测试UART2发送信号
测试UART3接收数据
总 结

§01 稿内容


在MM32F3277中存在 八个串口,对应的串口端口为:

UART端口(RX,TX):

UART1:PA10, PA9
UART2:PA3,PA2
UART3:PB11,PB10
UART4:PC11,PC10
UART5:PD2,PC12
UART6:PC7,.PC6
UART7:PE7,PE8
UART8:PD1,PD0

由于第一个串口(UART0)被用于交互界面(REPL),所示留给开发者使用的串口是从 UART2之后的串口。

一、基础实验

1、测试UART2发送信号

下面代码初始化 UART2,波特率为115200,每隔10ms发送 0x55(对应的字符 ‘U’)数据。串口发送数据是通过 write() 函数调用来实现的,每一次发送一个字节。

from machine                import Pin,UART
import utime

uart2 = UART(1, 115200)

print('Test UART.')

while True:
    _ = uart2.write(b'U')
    utime.sleep_ms(10)

利用示波器测试 PA2(TX2)的输出波形:

▲ 图1.1.1  PA2(TX2)测量到输出波形

▲ 图1.1.1 PA2(TX2)测量到输出波形

2、测试UART3接收数据

使用短路子将 RXD3与RXD1连接在一起,也就是将REPL的接收端口RXD1连接在UART3的接收端口。

下面程序显示了如何判断串口内接收到了字符,并读取该字符存储在内存缓冲区内。当接收到回车字符(0xd)之后,便将接收到的字符串转换成整数并显示。

from machine                import Pin,UART
import utime

uart2 = UART(2, 115200)

print('Test UART.')
buf = bytes(0)

while True:
    if uart2.any():
        buf = buf + uart2.read(uart2.any())

        if buf[-1] == 13:
            print(int(buf))

            buf = bytes(0)

    utime.sleep_ms(10)

处贴上运行结果如下。 在 Thonny交互界面上输入数字并回车,程序变输出对应的数字。如果输入的字符中包含有非数字字符,最后程序出错返回。

>> Reset MicroPython...
>> Wait for MicroPython coming back...
>> Download MicroPython : 33 lines/707 characters.
>> -------------------------------------------------------------------------

Test UART.
333
3333
123
Traceback (most recent call last):
  File "<stdin>", line 22, in <module>
ValueError: invalid syntax for integer
>>> 

  结 ※


本文给出了 MicroPython内核开发笔记:书内嵌入实验任务 中的 UART 部分软件用例部分内容。


■ 相关文献链接:

● 相关图表链接:

猜你喜欢

转载自blog.csdn.net/zhuoqingjoking97298/article/details/125548206