K210实战三-串口收发实验

K210实战三-串口收发实验

一、硬件平台

MAIX Bit开发板

在这里插入图片描述

二、软件平台

MAIXPY IDE

20210211161417

三、程序编写

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

3.1 引脚映射 fm.register()

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

fm.register(board_info.PIN10,fm.fpioa.UART2_TX)
fm.register(board_info.PIN11,fm.fpioa.UART2_RX)

3.2 初始化函数 machine.UART()

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: 停止位, 支持 11.5, 2, 默认 1
  • timeout: 串口接收超时时间
  • read_buf_len: 串口接收缓冲,串口通过中断来接收数据,如果缓冲满了,将自动停止数据接收

返回值

  • UART对象

3.3 调用API函数

3.3.1 init

用于初始化 uart,一般在构造对象时已经初始化,这里用在重新初始化 uart

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

参数

同构造函数,但不需要第一个UART号

3.3.2 read

用于读取串口缓冲中的数据

uart.read(num)

参数

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

返回值

  • bytes: 类型的数据
3.3.3 readline

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

uart.readline(num)
  • num: 读取行的数量

返回值

*bytes类型的数据

3.3.4 write

用于使用串口发送数据

uart.write(buf)

参数

  • buf: 需要发送到数据

返回值

  • 写入的数据量
3.3.5 deinit

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

uart.deinit()
3.3.6 repl_uart()

获取用于 REPL 的串口对象

返回值:

用于 REPL 的串口对象, 默认初始化位 115200 8 N 1

3.4 程序编写

打开IDE编译环境新建文件,开发板与电脑连接

20210212114301

点击IDE右下角连接标志,选择COM口连接MAIX BIT

20210212114420

连接后我们开始编写程序,程序基于MicroPython来编写,需要一定的Python基础,语法简单


#调用需要使用到的库文件
from machine import UART
from Maix import GPIO
from fpioa_manager import fm
import utime
#映射UART2的两个引脚
fm.register(GPIO.GPIOHS9,fm.fpioa.UART2_TX)
fm.register(GPIO.GPIOHS10,fm.fpioa.UART2_RX)
#初始化串口,返回调用句柄
uart_A = UART(UART.UART2, 115200, 8, None, 1, timeout=1000, read_buf_len=4096)
#定义一个要发送的字符串
write_str = 'get dat\r\n'
#主循环
while(True):
    read_str = uart_A.read(10)
    print("%s",read_str)
    utime.sleep_ms(100)
	#判断接受到后返回信息
    if read_str != None:
        uart_A.write(write_str)
    utime.sleep_ms(100)

四、程序下载

点击左下角测试运行代码,观察现象

20210523151218

现象没问题点击工具-选择保存脚本-等待下载完成,重新上电进行测试

20210523151256

五、实验现象

连接USB转TTL与K210的P9和P10 IO口

在这里插入图片描述

串口发送数据给K210后,打印在串行终端,K210返回指定的信息

在这里插入图片描述

  • 32
    点赞
  • 264
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 29
    评论
评论 29
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Top嵌入式

投喂个鸡腿

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值