From f301a1f0a47b2c8c853cb2a52c76e204db253919 Mon Sep 17 00:00:00 2001 From: "rex.zhou" Date: Fri, 29 Nov 2024 17:47:49 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BF=AE=E6=AD=A3UART1=20=E4=B8=B2?= =?UTF-8?q?=E5=8F=A3=E6=94=AF=E6=8C=81=E5=9E=8B=E5=8F=B7=E8=BF=87=E6=97=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/API_reference/zh/peripherals/machine.UART.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/API_reference/zh/peripherals/machine.UART.md b/docs/API_reference/zh/peripherals/machine.UART.md index d2b8a704..2aa92fcf 100644 --- a/docs/API_reference/zh/peripherals/machine.UART.md +++ b/docs/API_reference/zh/peripherals/machine.UART.md @@ -40,7 +40,7 @@ class machine.UART(UART.UARTn, baudrate, databits, parity, stopbits, flowctl) | BG95M | uart0:
TX: 引脚号23
RX: 引脚号22
uart1:
TX:引脚号27
RX:引脚号28
uart2:
TX: 引脚号64
RX: 引脚号65
uart4:
TX:引脚号35
RX:引脚号34 | | EC600M | uart0:
TX: 引脚号71
RX: 引脚号72
uart1(flowctl = 0):
TX: 引脚号3
RX: 引脚号2
uart1(flowctl = 1):
TX: 引脚号33
RX: 引脚号34
uart2:
TX:引脚号32
RX:引脚号31 | | EG915U | uart1:
TX: 引脚号27
RX: 引脚号28
uart2:
TX:引脚号35
RX:引脚号34
CTS:引脚号36
RTS:引脚号37
uart4:
TX:引脚号19
RX:引脚号18 | -| EC800M/EG810M | uart0:
TX: 引脚号39
RX: 引脚号38
uart1(flowctl = 0):
TX: 引脚号50
RX: 引脚号51
uart1(flowctl = 1):
TX: 引脚号22
RX: 引脚号23
注意:EC800MCNGA 、CNGD/ EG810MCNGA 模块的 uart1 不可用
uart2:
TX:引脚号18
RX:引脚号17
uart4:
TX:引脚号29
RX:引脚号28 | +| EC800M/EG810M | uart0:
TX: 引脚号39
RX: 引脚号38
uart1(flowctl = 0):
TX: 引脚号50
RX: 引脚号51
uart1(flowctl = 1):
TX: 引脚号22
RX: 引脚号23
注意:EC800MCNGA 、CNGB、CNGD/ EG810MCNGA、CNGB 模块的 uart1 不可用
uart2:
TX:引脚号18
RX:引脚号17
uart4:
TX:引脚号29
RX:引脚号28 | | EG912N | uart0:
TX: 引脚号23
RX: 引脚号22
uart1(flowctl = 0):
TX: 引脚号27
RX: 引脚号28
uart1(flowctl = 1):
TX: 引脚号36
RX: 引脚号37
uart2:
TX:引脚号35
RX:引脚号34 | | EC600E | uart0:
TX: 引脚号71
RX: 引脚号72
uart1:(EC600ECN_LE&LQ不可用)
TX:引脚号70
RX:引脚号69
uart2:
TX:引脚号32
RX:引脚号31 | | EC800E | uart0:
TX: 引脚号39
RX: 引脚号38
uart1:
TX:引脚号29
RX:引脚号28
uart2:
TX:引脚号18
RX:引脚号17 | -- Gitee From 9498fdf057d592b362dc491b419271e562c9bf85 Mon Sep 17 00:00:00 2001 From: "rex.zhou" Date: Sat, 11 Jan 2025 06:26:25 +0000 Subject: [PATCH 2/2] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=20docs?= =?UTF-8?q?/API=5Freference/zh/peripherals/machine.UART.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../zh/peripherals/machine.UART.md | 310 ------------------ 1 file changed, 310 deletions(-) delete mode 100644 docs/API_reference/zh/peripherals/machine.UART.md diff --git a/docs/API_reference/zh/peripherals/machine.UART.md b/docs/API_reference/zh/peripherals/machine.UART.md deleted file mode 100644 index 2aa92fcf..00000000 --- a/docs/API_reference/zh/peripherals/machine.UART.md +++ /dev/null @@ -1,310 +0,0 @@ -# class UART - 串口通信 - -该类提供uart串口数据传输功能。 - -## 构造函数 - -### `machine.UART` - -```python -class machine.UART(UART.UARTn, baudrate, databits, parity, stopbits, flowctl) -``` - -**参数描述:** - -- `UARTn` - UART编号,int类型,UARTn说明如下:
`UART0` - DEBUG PORT
`UART1` - BT PORT
`UART2` - MAIN PORT
`UART3` - USB CDC PORT (不支持BG95M3)
`UART4` - STDOUT PORT (仅支持EC200U/EC600U/EG915U/EG915N) - -- `baudrate` - 波特率,int类型,支持常用波特率,如`4800`、`9600`、`19200`、`38400`、`57600`、`115200`、`230400`等; - - EC200U/EC600U/EG912U/EG915U系列支持2400、4800、9600、14400、19200、28800、33600、38400、57600、115200、230400、460800、921600、1000000。 - -- `databits` - 数据位[5 ~ 8],int类型,EC600U/EC200U/EG915U/EC800G仅支持8位。 - -- `parity` - 奇偶校验(`0` – NONE,`1` – EVEN,`2` – ODD),int类型。 - -- `stopbits` - 停止位[1 ~ 2],int类型。 - -- `flowctl` - 硬件控制流(`0` – FC_NONE, `1` – FC_HW),int类型。 - -**UART引脚对应关系 :** - -| 平台 | 引脚 | -| ------------- | ------------------------------------------------------------ | -| EC600U | uart1:
TX: 引脚号124
RX: 引脚号123
uart2:
TX:引脚号32
RX:引脚号31
RTS:引脚号34
CTS:引脚号33
uart4:
TX:引脚号103
RX:引脚号104 | -| EC200U | uart1:
TX: 引脚号138
RX: 引脚号137
uart2:
TX:引脚号67
RX:引脚号68
RTS:引脚号65
CTS:引脚号64
uart4:
TX:引脚号82(EC200UXXAA不支持)
RX:引脚号81 | -| EC200A/UC200A | uart0:(建议使用其他uart)
TX: 引脚号12
RX: 引脚号11
uart1:
TX: 引脚号63(EC200ACN_LA: 引脚号26)
RX: 引脚号66(EC200ACN_LA: 引脚号27)
uart2:
TX:引脚号67
RX:引脚号68
注意:EC200ACN_LA模组uart1引脚号与其他型号不同 | -| EC600S/EC600N | uart0:
TX: 引脚号71
RX: 引脚号72
uart1:
TX: 引脚号3
RX: 引脚号2
uart2:
TX:引脚号32
RX:引脚号31 | -| EC100Y | uart0:
TX: 引脚号21
RX: 引脚号20
uart1:
TX: 引脚号27
RX: 引脚号28
uart2:
TX:引脚号50
RX:引脚号49 | -| EC800N | uart0:
TX: 引脚号39
RX: 引脚号38
uart1:
TX: 引脚号50
RX: 引脚号51
uart2:
TX:引脚号18
RX:引脚号17 | -| BC25PA | uart1:
TX: 引脚号29
RX: 引脚号28 | -| BG95M | uart0:
TX: 引脚号23
RX: 引脚号22
uart1:
TX:引脚号27
RX:引脚号28
uart2:
TX: 引脚号64
RX: 引脚号65
uart4:
TX:引脚号35
RX:引脚号34 | -| EC600M | uart0:
TX: 引脚号71
RX: 引脚号72
uart1(flowctl = 0):
TX: 引脚号3
RX: 引脚号2
uart1(flowctl = 1):
TX: 引脚号33
RX: 引脚号34
uart2:
TX:引脚号32
RX:引脚号31 | -| EG915U | uart1:
TX: 引脚号27
RX: 引脚号28
uart2:
TX:引脚号35
RX:引脚号34
CTS:引脚号36
RTS:引脚号37
uart4:
TX:引脚号19
RX:引脚号18 | -| EC800M/EG810M | uart0:
TX: 引脚号39
RX: 引脚号38
uart1(flowctl = 0):
TX: 引脚号50
RX: 引脚号51
uart1(flowctl = 1):
TX: 引脚号22
RX: 引脚号23
注意:EC800MCNGA 、CNGB、CNGD/ EG810MCNGA、CNGB 模块的 uart1 不可用
uart2:
TX:引脚号18
RX:引脚号17
uart4:
TX:引脚号29
RX:引脚号28 | -| EG912N | uart0:
TX: 引脚号23
RX: 引脚号22
uart1(flowctl = 0):
TX: 引脚号27
RX: 引脚号28
uart1(flowctl = 1):
TX: 引脚号36
RX: 引脚号37
uart2:
TX:引脚号35
RX:引脚号34 | -| EC600E | uart0:
TX: 引脚号71
RX: 引脚号72
uart1:(EC600ECN_LE&LQ不可用)
TX:引脚号70
RX:引脚号69
uart2:
TX:引脚号32
RX:引脚号31 | -| EC800E | uart0:
TX: 引脚号39
RX: 引脚号38
uart1:
TX:引脚号29
RX:引脚号28
uart2:
TX:引脚号18
RX:引脚号17 | -| EC600G | uart1:
TX: 引脚号124
RX: 引脚号123
uart2:
TX:引脚号32
RX:引脚号31
RTS:引脚34
CTS:引脚33
uart4:
TX:引脚号116
RX:引脚号9
uart5:
TX:引脚号125
RX:引脚号126
uart6:
TX:引脚号106
RX:引脚号105 | -| EC800G | uart1:
TX: 引脚号29
RX: 引脚号28
uart2:
TX:引脚号18
RX:引脚号17
uart5:
TX:引脚号23
RX:引脚号22
uart6:
TX:引脚号86
RX:引脚号83 | -| EG912U | uart1:
TX: 引脚号27
RX: 引脚号28
uart2:
TX: 引脚号35
RX: 引脚号34
CTS:引脚号36
RTS:引脚号37
uart4:(EG912UGL_AA不可用)
TX:引脚号19
RX:引脚号18 | -| EC600K | uart0:
TX: 引脚号71
RX: 引脚号72
uart1(flowctl = 0):
TX: 引脚号3
RX: 引脚号2
uart1(flowctl = 1):
TX: 引脚号33
RX: 引脚号34
uart2:
TX:引脚号32
RX:引脚号31 | -| EC800K/EG800K | uart0:
TX: 引脚号39
RX: 引脚号38
uart1(flowctl = 0):(EG800KCN不可用)
TX: 引脚号50
RX: 引脚号51
uart1(flowctl = 1):(EG800KCN不可用)
TX: 引脚号22
RX: 引脚号23
uart2:
TX:引脚号18
RX:引脚号17 | -| EG800P | uart0:
TX: 引脚号39
RX: 引脚号38
uart1:
TX: 引脚号22
RX: 引脚号23
uart2:
TX:引脚号18
RX:引脚号17
RTS:引脚23
CTS:引脚22
uart3:
TX:引脚号29
RX:引脚号28 | -| FCM360W | uart0:
TX: 引脚号27
RX: 引脚号26
uart2:
TX:引脚号20
RX:引脚号19
| -| FCM362K |uart1:
TX: 引脚号35
RX: 引脚号34
uart2:
TX:引脚号28
RX:引脚号27
| -| BC32 | uart0:
TX: 引脚号21
RX: 引脚号22 | -| BC92 | uart0:
TX: 引脚号22
RX: 引脚号21 | -| EG915N | uart0:
TX: 引脚号23
RX: 引脚号22
uart1:
TX: 引脚号27
RX: 引脚号28
uart2:
TX: 引脚号35
RX: 引脚号34
CTS:引脚号36
RTS:引脚号37
uart4:(EG915NEU_AG不支持)
TX:引脚号36
RX:引脚号37 | -| EC800Z | uart0:
TX: 引脚号39
RX: 引脚号38
uart1:
TX:引脚号29
RX:引脚号28
uart2:
TX:引脚号18
RX:引脚号17 | - -> 1、EC600M/EC800M/EG810M/EG912N/EC600K/EC800K 的uart1在flowctl = 1时,仅将uart1映射到不同的引脚,未开启流控功能。 -> -> 2、BG95系列使用UART4需要先调用modem.main_uart_enable_set(1)使能UART4,重启生效,如下 -> -> ```python -> import modem -> #获取Main_UART使能状态 1-使能,0-不使能 -> modem.main_uart_enable_get() -> #设置Main_UART使能状态 1-使能,0-不使能,重启生效 -> modem.main_uart_enable_set(1) -> ``` -> -> 3、FCM360W UART2被初始化后交互口将无法使用,需要在代码中执行uart2.close()或者重启模组才可继续使用交互口。 -> -> 4、FCM362K UART1被初始化后交互口将无法使用,需要在代码中执行uart1.close()或者重启模组才可继续使用交互口。 - -**示例:** - -```python ->>> # 创建uart对象 ->>> from machine import UART ->>> uart1 = UART(UART.UART1, 115200, 8, 0, 1, 0) -``` - -## 方法 - -### `uart.any` - -```python -uart.any() -``` - -该方法用于获取接收缓存未读数据大小。 - -**返回值描述:** - -返回接收缓存器中有多少字节的数据未读。 - -**示例:** - -```python ->>> uart1.any() -20 #表示接收缓冲区中有20字节数据未读 -``` - -### `uart.read` - -```python -uart.read(nbytes) -``` - -该方法用于从串口读取数据。 - -**参数描述:** - -- `nbytes` - 要读取的字节数,int类型。 - -**返回值描述:** - -返回读取的数据。 - -### `uart.write` - -```python -uart.write(data) -``` - -该方法用于发送数据到串口。 - -**参数描述:** - -- `data` - 发送的数据,bytes类型。 - -**返回值描述:** - -返回发送的字节数。 - -### `uart.close` - -```python -uart.close() -``` - -该方法用于关闭串口。 - -**返回值描述:** - -成功返回整型值`0`,失败返回整型值`-1`。 - -### `uart.control_485` - -```python -uart.control_485(UART.GPIOn, direction) -``` - -该方法用于控制485通信方向,串口发送数据之前和之后进行拉高拉低指定GPIO,用来指示485通信的方向。 - -**参数描述:** - -- `GPIOn` - 需要控制的GPIO引脚号,参照[Pin模块](machine.Pin.md)的引脚定义,int类型。 - -- `direction` - 引脚电平变化,int类型,说明如下:
`1`表示引脚电平变化为:串口发送数据之前由低拉高、发送数据之后再由高拉低
`0`表示引脚电平变化为:串口发送数据之前由高拉低、发送数据之后再由低拉高 - -**返回值描述:** - -成功返回整型值`0`,失败返回整型值`-1`。 - -> BC25PA/BG95M3/FCM360W平台不支持此方法。 - -**示例:** - -```python ->>> from machine import UART ->>> uart1 = UART(UART.UART1, 115200, 8, 0, 1, 0) ->>> uart1.control_485(UART.GPIO24, 1) -``` - -### `uart.set_callback` - -```python -uart.set_callback(fun) -``` - -该方法用于设置串口数据回调,串口收到数据后,会执行该回调。 - -**参数描述:** - -- `fun` - 串口回调函数,回调函数原型: - - ``` - fun(result_list) - ``` - - 回调函数参数描述: - - - `result_list[0]`:接收是否成功(0:成功,其它:失败) - - - `result_list[1]`:接收端口 - - - `result_list[2]`:返回有多少数据 - -**返回值描述:** - -成功返回整型值`0`,失败返回整型值`-1`。 - -**示例:** - -```python ->>> from machine import UART ->>> uart1 = UART(UART.UART1, 115200, 8, 0, 1, 0) ->>> ->>> def uart_call(para): ->>> print(para) ->>> uart1.set_callback(uart_call) -``` - -**使用示例:** - -```python -""" -运行本例程,需要通过串口线连接开发板的 MAIN 口和PC,在PC上通过串口工具 -打开 MAIN 口,并向该端口发送数据,即可看到 PC 发送过来的消息。 -""" -import _thread -import utime -import log -from machine import UART - -''' - * 参数1:端口 - 注:EC100YCN平台与EC600SCN平台,UARTn作用如下 - UART0 - DEBUG PORT - UART1 – BT PORT - UART2 – MAIN PORT - UART3 – USB CDC PORT - * 参数2:波特率 - * 参数3:data bits (5~8) - * 参数4:Parity (0:NONE 1:EVEN 2:ODD) - * 参数5:stop bits (1~2) - * 参数6:flow control (0: FC_NONE 1:FC_HW) -''' - - -# 设置日志输出级别 -log.basicConfig(level=log.INFO) -uart_log = log.getLogger("UART") - -class Example_uart(object): - def __init__(self, no=UART.UART2, bate=115200, data_bits=8, parity=0, stop_bits=1, flow_control=0): - self.uart = UART(no, bate, data_bits, parity, stop_bits, flow_control) - self.uart.set_callback(self.callback) - - - def callback(self, para): - uart_log.info("call para:{}".format(para)) - if(0 == para[0]): - self.uartRead(para[2]) - - - def uartWrite(self, msg): - uart_log.info("write msg:{}".format(msg)) - self.uart.write(msg) - - def uartRead(self, len): - msg = self.uart.read(len) - utf8_msg = msg.decode() - uart_log.info("UartRead msg: {}".format(utf8_msg)) - return utf8_msg - - def uartWrite_test(self): - for i in range(10): - write_msg = "Hello count={}".format(i) - self.uartWrite(write_msg) - utime.sleep(1) - -if __name__ == "__main__": - uart_test = Example_uart() - uart_test.uartWrite_test() - - -# 运行结果示例 -''' -INFO:UART:write msg:Hello count=0 -INFO:UART:write msg:Hello count=1 -INFO:UART:write msg:Hello count=2 -INFO:UART:write msg:Hello count=3 -INFO:UART:write msg:Hello count=4 -INFO:UART:write msg:Hello count=5 -INFO:UART:write msg:Hello count=6 -INFO:UART:write msg:Hello count=7 -INFO:UART:write msg:Hello count=8 -INFO:UART:write msg:Hello count=9 - -INFO:UART:call para:[0, 2, 15] -INFO:UART:UartRead msg: my name is XXX - - -''' - -``` - -## 常量 - -| 常量 | 说明 | -| ---------- | ----- | -| UART.UART0 | UART0 | -| UART.UART1 | UART1 | -| UART.UART2 | UART2 | -| UART.UART3 | UART3 | -| UART.UART4 | UART4 | - -- Gitee