分页: 1 / 1

micropython的串口接收驱动 irqUART

发表于 : 2020年 6月 28日 11:32
shaoziyang
将串口接收功能封装了一下,更加通用,使用也更加方便了。

特点
  • 接口简单
  • 支持自定义串口接收回调函数
  • 支持自定义数据包(Frame)回调函数
  • 可以设置数据包超时时间
  • 支持STM32/ESP32

驱动地址
隐藏内容
你必须登入/注册才可观看隐藏内容
 
 

Re: micropython的串口接收驱动

发表于 : 2020年 6月 28日 11:33
shaoziyang
demo

代码: 全选

from machine import Pin, UART
from irqUART import irqUART

cnt = 0
def U1_RX_IRQ(t):
    global cnt
    n = 0
    while u1.any():
        d = u1.any()
        cnt+=d
        n+=1
        print('[', n, ']', cnt, d, u1.read(d))

def U1_RX_FRAME_IRQ(t):
    global cnt
    print('FRAME end')
    cnt = 0

u1=UART(1)
ui = irqUART(u1, Pin('B7'), U1_RX_IRQ, U1_RX_FRAME_IRQ)
ui.uart.init(115200)

Re: micropython的串口接收驱动

发表于 : 2020年 6月 28日 11:36
shaoziyang
提示
  • 如果不需要数据包功能,可以不设置数据包的回调函数,只设置字符接收回调函数。
  • 如果不需要字符中断功能,可以只设置数据包功能
  • 如果通过串口一次性接收较多数据,同时波特率也较高,需要设置足够大的串口接收缓冲区(rxbuf)。在STM32上默认是64,ESP32默认是256。