K210学习 (三)串口

news/2024/11/8 18:51:19/

前言

uart 模块主要用于驱动开发板上的异步串口,可以自由对 uart 进行配置。k210 一共有3个 uart,每个 uart 可以进行自由的引脚映射

一、K210串口使用步骤

1.库的导入

from machine import UART
from board import board_info
from fpioa_manager import fm

2.引脚映射

在使用 uart 前,我们需要使用 fm 来对芯片引脚进行映射和管理。如下所示,将 PIN10 设置为 uart1的发送引脚,PIN11 设置为 uart1 的接收引脚。

fm.register(board_info.PIN10, fm.fpioa.UART1_TX, force=True)
fm.register(board_info.PIN11, fm.fpioa.UART1_RX, force=True)

3.构造函数

uart = machine.UART(uart,baudrate,bits,parity,stop,timeout, read_buf_len)

通过指定的参数新建一个 UART 对象
参数说明:

  • 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: 串口接收缓冲,串口通过中断来接收数据,如果缓冲满了,将自动停止数据接收

 4.串口初始化

uart.init(baudrate,bits,parity,stop,timeout, read_buf_len)

5.功能函数

1、

uart.read(num)

参数

  • num: 读取字节的数量,一般填入缓冲大小,如果缓冲中数据的数量没有 num 大,那么将只返回缓冲中剩余的数据

返回值

  • bytes类型的数据

2.

uart.readline(num)

用于读取串口缓冲数据的一行

参数

  • num: 读取行的数量

返回值

*bytes类型的数据

3、

uart.write(buf)

用于使用串口发送数据

参数

  • buf: 需要发送到数据

返回值

  • 写入的数据量

4、

uart.deinit()

注销 UART 硬件,释放占用的资源

参数

返回值

例程

在运行里程之前,请确认 PIN4 已经连接到 PIN10, PIN3 已经连接到 PIN11

运行程序后,可以在终端看到 baudrate:115200 bits:8 parity:0 stop:0 ---check Successfully 的打印信息

以下例程对于Bit开发是不能直接进行使用,需要修改对应可用的PIN脚,可自行尝试

from machine import UART
from board import board_info
from fpioa_manager import fm## maixduino board_info PIN10/PIN11/PIN12/PIN13 or other hardware IO 10/11/4/3
fm.register(board_info.PIN10, fm.fpioa.UART1_TX, force=True)
fm.register(board_info.PIN11, fm.fpioa.UART1_RX, force=True)
fm.register(board_info.PIN3, fm.fpioa.UART2_TX, force=True)
fm.register(board_info.PIN4, fm.fpioa.UART2_RX, force=True)uart_A = UART(UART.UART1, 115200, 8, 0, 0, timeout=1000, read_buf_len=4096)
uart_B = UART(UART.UART2, 115200, 8, 0, 0, timeout=1000, read_buf_len=4096)write_str = 'hello world'
for i in range(20):uart_A.write(write_str)read_data = uart_B.read()if read_data:read_str = read_data.decode('utf-8')print("string = ", read_str)if read_str == write_str:print("baudrate:115200 bits:8 parity:0 stop:0 ---check Successfully")uart_A.deinit()
uart_B.deinit()
del uart_A
del uart_B


http://www.ppmy.cn/news/77928.html

相关文章

【国产虚拟仪器】基于AD9172/AD9176的4 通道12.6GSPS 采样率16 位DA 播放FMC JESD204B 接口子卡模块

板卡概述 FMC_XM131 是一款4 通道12.6GSPS 采样率16 位DA 播放FMC子卡模块,该板卡为FMC标准,符合VITA57.4 规范,可以作为一个理想的IO 模块耦合至FPGA 前端,16 通道的JESD204B 接口通过FMC连接器连接至FPGA 的高速串行端…

【MATLAB第35期】基于MATLAB的2023年改进的进化算法优化LSTM时间序列预测模型思路

【MATLAB第35期】基于MATLAB的2023年改进的进化算法优化LSTM时间序列预测模型思路 一、思路 拿第34期的棕熊算法举例: 优化途径: (一)种群初始学习改进 (1)反向学习(OBOA) (2)准反…

Django框架之模板过滤器

过滤器可以用来修改变量的显示样式。 使用方式 格式:{{变量|过滤器方法}}。可以连续使用,形式如:{{变量|过滤器方法1|过滤器方法2}}。 过滤器如下 Lower 转化为小写字母 格式:变量|lower Upper 转化为大写字母 格式&#xf…

使用canvas给图片添加水印

上接文章“图片处理” canvas元素其实就是一个画布,我们可以很方便地绘制一些文字、线条、图形等,它也可以将一个img标签里渲染的图片画在画布上。 我们在上传文件到后端的时候,使用input标签读取用户本地文件后得到的其实是一个Blob对象&a…

Hudi(三)集成Flink

1、环境准备 将编译好的jar包放到Flink的lib目录下。 cp hudi-flink1.13-bundle-0.12.0.jar /opt/module/flink-1.13.2/lib 2、sql-client方式 2.1、修改flink-conf.yaml配置 vim /opt/module/flink-1.13.2/conf/flink-conf.yamlstate.backend: rocksdb execution.checkpoi…

微信小程序点击icon实现分享功能

1.小程序分享功能实现方式 小程序分享功能有两种方式,监听用户点击页面内转发按钮( 组件 open-type“share”)或右上角菜单“转发”按钮的行为,并自定义转发内容。 使用微信小程序的分享功能需要定义onShareAppMessage(Object obj…

免费开源 | 基于SpringBoot的学生信息管理系统

一、项目简介 学生信息管理后台,包括学生管理、课程管理、成绩管理,适用于课设等,仅具有管理功能,感兴趣的伙伴可以再次完善。 二、软件架构 springboot mybatis thymeleaf 三、系统运行 注:mysql数据库要8.0以上…

pytest+requests+Python3.7+yaml+Allure+Jenkins+docker实现接口自动化

目录 接口自动化测试框架(用例自动生成) 项目说明 技术栈 环境部署 框架流程图与目录结构图及相关说明 1、框架流程图如下 2、代码目录结构图如下 关联详解 函数助手详解 代码设计与功能说明 1、定义运行配置文件 runConfig.yml 2、接口配置…