diff --git a/docs/Advanced_development/zh/QuecPythonSub/UART.md b/docs/Advanced_development/zh/QuecPythonSub/UART.md
index 3059374f49c92a1cc9a2300068df3750730bc3d9..acd84697c0eafe752cdbf97b2fc02e352d45a92d 100644
--- a/docs/Advanced_development/zh/QuecPythonSub/UART.md
+++ b/docs/Advanced_development/zh/QuecPythonSub/UART.md
@@ -1,96 +1,39 @@
-# **QuecPython UART开发使用说明**
+## 修订历史
-文档主要基于EC600S介绍如何使用QuecPython_UART,UART作为一种通用串行数据总线,用于异步通信,可实现全双工传输和接收。在嵌入式设计中,UART用来与PC进行通信,包括监控调试器和其它器件。通过本文你将了解到EC600S\_UART的所有设置参数及使用方法。
+| Version | Date | Author | Change expression |
+| ------- | --------- | ------ | ----------------- |
+| 1.0 | 2021-9-02 | David | Initial version |
+文档主要基于EC600X(包括EC600S、EC600N、EC600U)介绍如何使用QuecPython_UART,UART作为一种通用串行数据总线,用于异步通信,可实现全双工传输和接收。在嵌入式设计中,UART用来与PC进行通信,包括监控调试器和其它器件。通过本文你将了解到EC600X_UART的所有设置参数及使用方法。
-## 硬件描述
-目前开放共3路UART,各路UART对应模组的PIN脚如下图所示:
+## 硬件描述
-
+针对不同的模组,开放的UART列表如下:
-3路UART对应开发板的接口如下图所示:
+| module_name | module_UART_name | module_UART_PIN |
+| ----------- | ----------------------------------------------------- | ------------------------------------------- |
+| EC600S/N | UART0_DEBUG PORT
UART1_BT PORT
UART2_MAIN PORT | PIN71、PIN72
PIN2、PIN3
PIN31、PIN32 |
+| EC600U | UART1_BT PORT
UART2_MAIN PORT | PIN123、PIN124
PIN31、32 |
-
+对于V1.2和V1.3的QuecPython开发板,具体的UART位置标记如下:
-3路串口对应关系列表如下:
+
-| 串口名 | 模组引脚名 | 模组引脚号 |
-|----------|----------------|------------|
-| 调试串口 | DBG_RXD | 72 |
-| | DBG_TXD | 71 |
-| 辅助串口 | GPIO2/SPI_MISO | 2 |
-| | GPIO3/SPI_MOSI | 3 |
-| 主串口 | MAIN_DTR | 39 |
-| | MAIN_RXD | 31 |
-| | MAIN_TXD | 32 |
-| | MAIN_CTS | 33 |
-| | MAIN_RTS | 34 |
-| | MAIN_DCD | 48 |
-| | MAIN_RI | 40 |
+针对其他版本的QuecPython开发板,可以根据上述的PIN脚号和对应版本的原理图在开发板上面找到对应的位置
## 软件设计
-### 创建UART对象
-
-uart = UART(UART.UARTn, buadrate, databits, parity, stopbits,flowctl)。创建UART对象接口参数介绍如下:
-
-| 参数 | 类型 | 说明 |
-|----------|------|-------------------------------------------------------------------------------|
-| UARTn | int | 端口号 UART0 - DEBUG PORT UART1 – BT PORT UART2 – MAIN PORT |
-| buadrate | int | 波特率,常用波特率都支持,如4800、9600、19200、38400、57600、115200、230400等 |
-| databits | int | 数据位(5~8) |
-| parity | int | 奇偶校验(0 – NONE,1 – EVEN,2 - ODD) |
-| stopbits | int | 停止位(1~2) |
-| flowctl | int | 硬件控制流(0 – FC_NONE, 1 – FC_HW |
-
-### 查询串口未读字节数
-
-uart.any():返回接收缓存器中有多少字节的数据未读,无参数。
-
-返回值:指令执行成功或者不存在未读数据都返回0,否则返回未读字节数。
-
-### 读取数据
-
-uart.read(nbytes):从串口读取数据,建议先执行上个命令,查询未读数据的字节数,然后读取数据时加上需要读取的字节数。
-
-参数介绍如下:
-
-| 参数 | 类型 | 说明 |
-|--------|------|----------------|
-| nbytes | int | 要读取的字节数 |
-
-返回值:返回读取的数据
-
-### 发送数据
-
-uart.write(data),用于从模组向外发送数据,参数介绍如下:
-
-| 参数 | 类型 | 说明 |
-|------|--------|------------|
-| data | string | 发送的数据 |
-
-返回值:返回发送的字节数
-
-### 关闭串口
-
-uart.close():关闭串口,无参数。
-
-返回值:成功返回整型0,失败返回整型-1
+软件设计主要参考官网的wiki,地址:[UART_API库](https://python.quectel.com/wiki/#/zh-cn/api/QuecPythonClasslib?id=uart)
## 交互操作
-使用QPYcom工具和模组进行交互,下面实例是基于UART0,UART1和UART2操作类似。
-
-
-
-
-
+使用QPYcom工具和模组进行交互,下面实例是基于UART0,对于UART1和UART2的话,操作类似,此处省略。
注意:
-1. from machine import UART即为让UART模块在当前空间可见。
+1. from machine import UART目的是让UART模块在当前空间可见。
2. 只有from machine import UART模块,才能使用UART内的函数和变量。
@@ -98,6 +41,10 @@ uart.close():关闭串口,无参数。
## 下载验证
+模组:EC600U_QuecPython开发板
+
+串口:UART1
+
### 软件代码
配套demo的参考代码为文档同目录下的example_uart_file.py文件。下载.py文件到模组运行,代码如下:
@@ -107,87 +54,74 @@ import _thread # 导入线程模块
import utime # 导入定时模块
import log # 导入log模块
from machine import UART # 导入UART模块
-# 测试该示例代码需要配置uart
+
# 设置日志输出级别
log.basicConfig(level=log.INFO)
uart_log = log.getLogger("UART")
-state = 1
+uart = UART(UART.UART1, 115200, 8, 0, 1, 0)
+
def uartWrite():
+ global uart
count = 10
- # 配置uart
- uart = UART(UART.UART1, 115200, 8, 0, 1, 0)
while count:
write_msg = "Hello count={}".format(count)
- # 发送数据
uart.write(write_msg)
uart_log.info("Write msg :{}".format(write_msg))
utime.sleep(1)
count -= 1
uart_log.info("uartWrite end!")
+
+
def UartRead():
- global state
- uart = UART(UART.UART1, 115200, 8, 0, 1, 0)
+ global uart
while 1:
- # 返回是否有可读取的数据长度
msgLen = uart.any()
+ utime.sleep(0.1)
# 当有数据时进行读取
if msgLen:
msg = uart.read(msgLen)
- # 初始数据是字节类型(bytes),将字节类型数据进行编码
utf8_msg = msg.decode()
- # str
uart_log.info("UartRead msg: {}".format(utf8_msg))
else:
continue
- state = 0
+
+
def run():
- # 创建一个线程来监听接收uart消息
_thread.start_new_thread(UartRead, ())
+ _thread.start_new_thread(uartWrite, ())
+
if __name__ == "__main__":
- uartWrite()
run()
- while 1:
- if state:
- pass
- else:
- break
+ while True:
+ utime.sleep(0.5)
```
### 硬件连接
使用type-c给模块供电,UART与TTL转USB模块的连接如下表(仅供参考):
-| 模块UART_pin脚 | TTL转USB模块 |
-|----------------|--------------|
-| SPI_MISO | Tx |
-| SPI_MOSI | Rx |
-| GND | GND |
+| 开发板上的PIN脚 | TTL转USB模块 | 图中线的颜色 |
+| --------------- | ------------ | ------------ |
+| J6的12脚 | Tx | 红色 |
+| J6的13脚 | Rx | 橘色 |
+| GND | GND | 棕色 |
硬件连接展示图如下图所示:
-
-
-
-
-
+
### 运行效果
1. 打开QCOM,连接TTL转USB对应的端口,如下图所示:
-
-
- 
-
-
-
-2. 打开QPYcom运行uart_file.py,可在QCOM查看到UART write数据,现象如下截图红色部分
+
+
+2. 打开QPYcom运行example_uart_file.py,可在QCOM查看到UART write数据,现象如下截图红色部分
-3. 然QCOM上写quectel两次,可在QPYcom上查看读取的数据。现象如下截图蓝色部分
+3. 然后QCOM上写QuecPython多次,可在QPYcom上查看读取的数据。现象如下截图蓝色部分
+
+
-
-
-
## 配套代码
-
- 下载代码
\ No newline at end of file
+
+ 下载代码
\ No newline at end of file
diff --git a/docs/Advanced_development/zh/QuecPythonSub/code/uart_file.py b/docs/Advanced_development/zh/QuecPythonSub/code/example_uart_file.py
similarity index 62%
rename from docs/Advanced_development/zh/QuecPythonSub/code/uart_file.py
rename to docs/Advanced_development/zh/QuecPythonSub/code/example_uart_file.py
index f04b635416f7975fb21ebd98f080e358f84305d9..f96d4bb74ae947e693612eff68c81cf67f7368fc 100644
--- a/docs/Advanced_development/zh/QuecPythonSub/code/uart_file.py
+++ b/docs/Advanced_development/zh/QuecPythonSub/code/example_uart_file.py
@@ -3,22 +3,16 @@ import utime # 导入定时模块
import log # 导入log模块
from machine import UART # 导入UART模块
-# 测试该示例代码需要配置uart
-
# 设置日志输出级别
log.basicConfig(level=log.INFO)
uart_log = log.getLogger("UART")
-
-state = 1
-
+uart = UART(UART.UART1, 115200, 8, 0, 1, 0)
def uartWrite():
+ global uart
count = 10
- # 配置uart
- uart = UART(UART.UART1, 115200, 8, 0, 1, 0)
while count:
write_msg = "Hello count={}".format(count)
- # 发送数据
uart.write(write_msg)
uart_log.info("Write msg :{}".format(write_msg))
utime.sleep(1)
@@ -27,33 +21,24 @@ def uartWrite():
def UartRead():
- global state
- uart = UART(UART.UART1, 115200, 8, 0, 1, 0)
+ global uart
while 1:
- # 返回是否有可读取的数据长度
msgLen = uart.any()
+ utime.sleep(0.1)
# 当有数据时进行读取
if msgLen:
msg = uart.read(msgLen)
- # 初始数据是字节类型(bytes),将字节类型数据进行编码
utf8_msg = msg.decode()
- # str
uart_log.info("UartRead msg: {}".format(utf8_msg))
else:
continue
- state = 0
def run():
- # 创建一个线程来监听接收uart消息
_thread.start_new_thread(UartRead, ())
-
+ _thread.start_new_thread(uartWrite, ())
if __name__ == "__main__":
- uartWrite()
run()
- while 1:
- if state:
- pass
- else:
- break
+ while True:
+ utime.sleep(0.5)
diff --git a/docs/Advanced_development/zh/QuecPythonSub/media/UART_01.png b/docs/Advanced_development/zh/QuecPythonSub/media/UART_01.png
new file mode 100644
index 0000000000000000000000000000000000000000..73e736486a7086971093588ffbd8ac307134d2e9
Binary files /dev/null and b/docs/Advanced_development/zh/QuecPythonSub/media/UART_01.png differ
diff --git a/docs/Advanced_development/zh/QuecPythonSub/media/cfdf4c62be36f4910398ee6579cbb633.png b/docs/Advanced_development/zh/QuecPythonSub/media/UART_02.png
similarity index 100%
rename from docs/Advanced_development/zh/QuecPythonSub/media/cfdf4c62be36f4910398ee6579cbb633.png
rename to docs/Advanced_development/zh/QuecPythonSub/media/UART_02.png
diff --git a/docs/Advanced_development/zh/QuecPythonSub/media/UART_03.png b/docs/Advanced_development/zh/QuecPythonSub/media/UART_03.png
new file mode 100644
index 0000000000000000000000000000000000000000..cb2e91615c5bb252404fd2bd7793afb70a3c51dd
Binary files /dev/null and b/docs/Advanced_development/zh/QuecPythonSub/media/UART_03.png differ
diff --git a/docs/Advanced_development/zh/QuecPythonSub/media/UART_04.png b/docs/Advanced_development/zh/QuecPythonSub/media/UART_04.png
new file mode 100644
index 0000000000000000000000000000000000000000..89ab8c148098d4058fad59e486b007f76ddff3c3
Binary files /dev/null and b/docs/Advanced_development/zh/QuecPythonSub/media/UART_04.png differ
diff --git a/docs/Advanced_development/zh/QuecPythonSub/media/UART_05.png b/docs/Advanced_development/zh/QuecPythonSub/media/UART_05.png
new file mode 100644
index 0000000000000000000000000000000000000000..de8e5c88e701dc3074f665aacce35a3ab5afefb9
Binary files /dev/null and b/docs/Advanced_development/zh/QuecPythonSub/media/UART_05.png differ
diff --git a/docs/Advanced_development/zh/QuecPythonSub/media/a89ce52fa9591a2b1252f9d2bb841cdf.png b/docs/Advanced_development/zh/QuecPythonSub/media/a89ce52fa9591a2b1252f9d2bb841cdf.png
deleted file mode 100644
index 706a5ef9983d91cf0a80178269d72a9a9c7760fe..0000000000000000000000000000000000000000
Binary files a/docs/Advanced_development/zh/QuecPythonSub/media/a89ce52fa9591a2b1252f9d2bb841cdf.png and /dev/null differ
diff --git a/docs/Advanced_development/zh/QuecPythonSub/media/cca92c331b45112155d3542adaf0ee97.png b/docs/Advanced_development/zh/QuecPythonSub/media/cca92c331b45112155d3542adaf0ee97.png
deleted file mode 100644
index f90fbcc8baa22b422e2488404e6c7409df3e9998..0000000000000000000000000000000000000000
Binary files a/docs/Advanced_development/zh/QuecPythonSub/media/cca92c331b45112155d3542adaf0ee97.png and /dev/null differ
diff --git a/docs/Advanced_development/zh/QuecPythonSub/media/e6ebd36d248fb439b2fdfb7bca8ec724.png b/docs/Advanced_development/zh/QuecPythonSub/media/e6ebd36d248fb439b2fdfb7bca8ec724.png
deleted file mode 100644
index 4fa17a4777520b23108d022e5f10ad9b5ce4db23..0000000000000000000000000000000000000000
Binary files a/docs/Advanced_development/zh/QuecPythonSub/media/e6ebd36d248fb439b2fdfb7bca8ec724.png and /dev/null differ
diff --git a/docs/Advanced_development/zh/QuecPythonSub/media/f3263989fb6aaafabf504ceb0d305c5b.png b/docs/Advanced_development/zh/QuecPythonSub/media/f3263989fb6aaafabf504ceb0d305c5b.png
deleted file mode 100644
index 3d5dc28cb6fb16708aca687b33d57d463e113f8b..0000000000000000000000000000000000000000
Binary files a/docs/Advanced_development/zh/QuecPythonSub/media/f3263989fb6aaafabf504ceb0d305c5b.png and /dev/null differ