K210-UART串口通信-简单上手(私人笔记)

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("

 3.1 machine.UART()函数

  • 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: 停止位, 支持 11.5, 2, 默认 1

    • timeout: 串口接收超时时间

    • read_buf_len: 串口接收缓冲,串口通过中断来接收数据,如果缓冲满了,将自动停止数据接收。

3.2 struct.pack()函数

  • struct.pack(fmt, v1, v2, ...)
    • 功能:将Python的值根据格式符,转换为[字符串](因为Python中没有字节(Byte)类型,可以把这里的字符串理解为字节流,或字节数组)。

    • fmt格式字符串。具体介绍看下表,注意写的时候要加" "

    • v1, v2, ...表示要转换的python值。

3.3 数据含义

  • "bbhhb"简单来说就是要发送数据的声明

    bbhhb共五个,代表发送五个数据,对照下面的表,可以知道五个数据按时序发送为 signer char、signed char、short、short、signed char

  • 0xb3为数据帧的帧头,即检测到数据流的开始,但是一个帧头可能会出现偶然性,因此设置两个帧头0xb3与0xb3以便在中断中检测是否检测到了帧头以便存放有用数据。

  • int(num1)、int(num2)为发送的数据,格式需严格对应声明类型。

  • 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

你可能感兴趣的:(k210,python,单片机,stm32,经验分享,神经网络,学习,笔记)