1. 头文件
#需要调用的库文件
from machine import UART
from Maix import GPIO
from fpioa_manager import fm
import ustruct
-
from 模块 import 方法或者函数
函数可以直接使用,不用 machine.UART
2. 管脚映射
#映射UART2的两个引脚
fm.register(GPIO.GPIOHS10, fm.fpioa.UART2_TX)
fm.register(GPIO.GPIOHS11, fm.fpioa.UART2_RX)
-
maix dock 有两个串口。
-
IO7 -- WIFI_RX;
IO6 -- WIFI_TX;
-
IO5 -- ISP_TX;
IO4 -- ISP_RX;
-
3. 串口初始化并发送数据
#初始化串口,返回调用句柄
uart = UART(UART.UART2, 115200, 8, None, 1, timeout=1000, read_buf_len=4096)
def seding_data(num1,num2):global uart;data_after = ustruct.pack("<bbhhb", #格式为俩个字符俩个短整型(2字节)0xb3, #帧头10xb3, #帧头2int(num1), #数据1int(num2), #数据20x58) #帧尾uart.write(data_after); #用于使用串口发送字节数据
-
uart = machine.UART(uart, baudrate, bits, parity, stop, timeout, read_buf_len)
-
uart
: UART 号,使用指定的 UART,可以通过machine.UART.
按tab键来补全。 -
baudrate
: UART 波特率。 -
bits
: UART 数据宽度,支持5/6/7/8
(默认的 REPL 使用的串口(UARTHS)只支持 8 位模式), 默认8
。 -
parity
: 奇偶校验位,支持None
,machine.UART.PARITY_ODD
,machine.UART.PARITY_EVEN
(默认的 REPL 使用的串口(UARTHS)只支持 None), 默认None
。 -
stop
: 停止位, 支持1
,1.5
,2
, 默认1
。 -
timeout
: 串口接收超时时间。 -
read_buf_len
: 串口接收缓冲,串口通过中断来接收数据,如果缓冲满了,将自动停止数据接收。
-
-
struct.pack(fmt, v1, v2, ...)
-
功能:将Python的值根据格式符,转换为[字符串](因为Python中没有字节(Byte)类型,可以把这里的字符串理解为字节流,或字节数组)。
-
fmt
是格式字符串。具体介绍看下表,注意写的时候要加" "
。 -
v1, v2, ...
表示要转换的python值。
-
-
"bbhhb"
简单来说就是要发送数据的声明。bbhhb共五个,代表发送五个数据,对照下面的表,可以知道五个数据按时序发送为 signer char、signed char、short、short、signed char。
-
0xb3
为数据帧的帧头,即检测到数据流的开始,但是一个帧头可能会出现偶然性,因此设置两个帧头0xb3与0xb3以便在中断中检测是否检测到了帧头以便存放有用数据。 -
0x58
为帧尾,即数据帧结束的标志。
格式 | C类型 | Python类型 | 标准大小 |
---|---|---|---|
x | pad byte | no value | |
c | char | string of length 1 | 1 |
b | signed char | integer | 1 |
B | unsigned char | integer | 1 |
? | _Bool | bool | 1 |
h | short | integer | 2 |
H | unsigned short | integer | 2 |
i | int | integer | 4 |
I(字母i大写) | unsigned int | integer | 4 |
l(字母L小写) | long | integer | 4 |
L | unsigned long | integer | 4 |
q | long long | integer | 8 |
Q | unsigned long long | integer | 8 |
f | float | float | 4 |
d | double | float | 8 |
s | char[] | string | 1 |
p | char[] | string | |
P | void * | integer |