使用micropython初始化UART总线和I';“我得到一个错误”;缺少1需要位置参数“;

使用micropython初始化UART总线和I';“我得到一个错误”;缺少1需要位置参数“;,uart,micropython,Uart,Micropython,我尝试在ESP-WROOM-32上运行以下代码: from machine import UART def do_uart_things(): uart = UART.init(baudrate=9600, bits=8, parity=None, stop=1, rx=34,tx=35) do_uart_things() 我正试图根据以下文档初始化uart总线:。文档建议只需要波特率、位、奇偶校验和停止,但是我得到了“需要1个附加位置参数”错误。我不明白它为什么会出现这个错误 我

我尝试在ESP-WROOM-32上运行以下代码:

from machine import UART

def do_uart_things():
    uart = UART.init(baudrate=9600, bits=8, parity=None, stop=1, rx=34,tx=35)

do_uart_things()
我正试图根据以下文档初始化uart总线:。文档建议只需要波特率、位、奇偶校验和停止,但是我得到了“需要1个附加位置参数”错误。我不明白它为什么会出现这个错误

我还假设rx和tx参数会根据UART类的需要自动转换为正确类型的引脚,而不是我必须手动管理它

我已经成功地获得了一些类似的代码:

from machine import UART

def do_uart_things():
    uart = UART(1,9600)
    uart.init(baudrate=9600, bits=8, parity=None, stop=1, rx=34,tx=35)
    #Pin numbers taken from ESP data sheet--they might not be correctly formatted

do_uart_things()
这让我认为文档是无意中误导的,主要示例并不是要“以这种方式或这种方式初始化”,而是要求两件事都要做

我认为后一个代码示例是使用micropython UART功能的正确方法,对吗?我也愿意参考micropython中使用UART和I2C的任何好例子,因为我发现文档有点不太好…

“可以使用……创建和初始化UART对象”可能有点误导。这意味着只能使用构造函数创建对象,但是可以使用构造函数初始化对象,也可以在创建对象之后使用
init
方法初始化对象

如您所见,类构造函数需要第一个参数
id
,而方法
init()
则不需要。所以你可以使用构造函数

uart=uart(1,波特率=9600,位=8,奇偶校验=None,停止=1,接收=34,发送=35)
但是您不能使用
UART.init()
,因为这不是一个构造函数,而是一个方法,所以它需要对实例而不是类进行操作