micropython的串口接收驱动 irqUART

MicroPython相关代码、库、工具
回复
头像
shaoziyang
帖子: 1254
注册时间: 2019年 10月 21日 13:48

micropython的串口接收驱动 irqUART

#1

帖子 shaoziyang » 2020年 6月 28日 11:32

将串口接收功能封装了一下,更加通用,使用也更加方便了。

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

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

头像
shaoziyang
帖子: 1254
注册时间: 2019年 10月 21日 13:48

Re: micropython的串口接收驱动

#2

帖子 shaoziyang » 2020年 6月 28日 11:33

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)

头像
shaoziyang
帖子: 1254
注册时间: 2019年 10月 21日 13:48

Re: micropython的串口接收驱动

#3

帖子 shaoziyang » 2020年 6月 28日 11:36

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

回复

  • 随机主题
    回复总数
    阅读次数
    最新文章