K210 串口通信

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,               #帧头1
                        0xb3,               #帧头2
                        int(num1),          #数据1
                        int(num2),          #数据2
                        0x58)               #帧尾
    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: 停止位, 支持 11.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类型标准大小
xpad byteno value
ccharstring of length 11
bsigned charinteger1
Bunsigned charinteger1
?_Boolbool1
hshortinteger2
Hunsigned shortinteger2
iintinteger4
I(字母i大写)unsigned intinteger4
l(字母L小写)longinteger4
Lunsigned longinteger4
qlong longinteger8
Qunsigned long longinteger8
ffloatfloat4
ddoublefloat8
schar[]string1
pchar[]string
Pvoid *integer
  • 4
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值