串口通信

1、K210 UART

1.1 、串口通信函数

1.2 、常用函数

3、代码

4、效果展示

准备工具 K210开发板

USB转TTL串口 (俗称ISP烧录器)

串口助手

其实Maix Bit 是自带CH552 芯片的,烧录程序使用,如果把代码烧录在flash或者保存在SD卡里面,不使用MaixPy IDE连接开发板,那么这个TX 、RX端口就会空出来(下面图示原理图标注了自带TX、TX),可以不使用USB转TTL就可以实现串口通信,如果既要连接用MaixPy IDE,又想要在串口助手收到数据,那么就需要一个USB转TTL。

附图USB转TTL(类似这种就可以):

实现Maix Bit 与上位机串口通信,在串口助手发送消息,Maix Bit 开发板在接收到消息之后转发到上位机,实现串口通信。

1、K210 UART

通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART,UART 模块主要用于驱动开发板上的异步串口。k210 一共有3个 UART,每个 UART可以进行自由的引脚映射。

1.1 、串口通信函数

K210可以自己随意的配置I/O口,类似FPGA,不像其它类型的单片机串口是固定好的。在使用 uart 前,我们需要使用 fm 来对芯片引脚进行映射和管理。我使用引脚9和引脚10分别做为UART1_TX和UART1_RX。如果想不使用USB转TTL,那么把引脚修改为原理图所示引脚即可4、5(这个一定要和开发板对应,不能错),然后把代码烧录到flash或者保存到SD卡,也可以实现与上位机串口通信。

fm.register(9, fm.fpioa.UART1_TX, force=True)

fm.register(10, fm.fpioa.UART1_RX, force=True)

构造函数,其实就是配置端口:

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: 停止位, 支持 1, 1.5, 2, 默认 1

timeout: 串口接收超时时间

read_buf_len: 串口接收缓冲,串口通过中断来接收数据,如果缓冲满了,将自动停止数据接收

如下是我自己构造的函数:

uart_A = UART(UART.UART1, 115200, 8, 1, 0, timeout=1000, read_buf_len=4096)

1.2 、常用函数

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

uart.read(num)

用于使用串口发送数据:

uart.write(buf)

在python3中. 默认的编码是unicode,我们的字符串就是unicode。unicode弊端:在存储和传输的时候是很浪费的

在存储和传输的时候不能直接使用unicode。 必须要对字符串进行编码. 编码成bytes类型(字节形式的字符串),在K210中默认是bytes类型的。解码和编码在物联网通信处理服务器数据是很重要的。

解码:

read_data是保存的已经收到的数据

read_data.decode('utf-8')

编码:

read_data.encode("utf-8")

3、代码

from fpioa_manager import fm

# need your connect hardware IO 9/10 to loopback

fm.register(9, fm.fpioa.UART1_TX, force=True)

fm.register(10, fm.fpioa.UART1_RX, force=True)

from machine import UART

uart_A = UART(UART.UART1, 115200, 8, 1, 0, timeout=1000, read_buf_len=4096)

import time

time.sleep_ms(100) # wait uart ready

uart_A.write(b'hello world')

:

if uart_A.any():

.any():

read_data = uart_A.read()

print("recv = ", read_data) # 输出收到的数据

uart_A.write(read_data+"r")

#break

time.sleep_ms(10) # ohter event

uart_A.deinit()

del uart_A

4、效果展示

react android 串口,Maix Bit(K210) 与上位机串口通信相关推荐

  1. 基于VS2015,MFC平台的上位机串口程序搭建详细教程(兼容debug x64、win32 、x86等解决方案平台)

    通常在32位编译环境下,我们可以通过插入MFC串口控件(MSCOMM32.OCX)的方式来实现串口通信,但是MSCOMM32.OCX不支持64位编译环境,也就是说,在x64解决方案平台下会报错.为此, ...

  2. C#上位机——串口发送

    C#上位机--串口发送 第一步:搭建框架 第二步:设置属性 第三步:编写代码,实现各个模块之间的联系和功能. using System; using System.Collections.Generi ...

  3. Labview上位机串口通信-读写

    使用VISA进行串口通信: (1)相关配置:串口资源(波特率等设置).VISA的打开.配置(接收和发送缓冲区).调用属性结点(一有字节出现就马上接收,或者发送) (2)读取部分:首先依据协议进行包头的 ...

  4. QT 篇 QT上位机串口编程

    QT 篇 QT上位机串口编程 最近因为项目需要,需要用到上位机,通过串口与上位机进行通讯,来上传和下发一些数据以及控制指令,所以用QT写了一个上位机,并记录下来,免得到时候要用又到处翻资料. QT版本 ...

  5. 兴达易控MPI转光纤模块应用-300PLC与远端3公里外地上位机MPI通信

    兴达易控MPI转光纤模块应用-300PLC与远端3公里外地上位机MPI通信 本案例介绍现场的一台300 313c的一款PLC 利用兴达易控生产的MPI转光纤与三公里以外的组态王实现MPI通信 案例背景 ...

  6. matlab上位机串口通信,MATLAB GUIDE 上位机串口通信开发 绘制图形

    本人因项目需求,需要开发这个串口通信上位机界面,用于实时绘制串口发送过来的数据.本人之前基本没使用过MATLAB,也就知道个zeros(100)这种在命令行窗口中输入的函数.至于MATLAB能开发图形 ...

  7. php写串口上位机,QT5串口编程—编写简单的上位机

    最近在学习嵌入式,而上位机又是一个不可缺少的工具,于是就开始接触QT,学习编写上位机.刚开始的时候什么都不懂,发现<Qt 学习之路 2>有比较好的入门教程.学习了前面部分,对QT有了大概的 ...

  8. QT5串口编程——编写简单的上位机

    下面开始介绍串口类的使用. 首先,QT5是自带QSerialPort这个类的,使用时需要在pro文件里面添加一行: ​然后直接引用头文件就可以了. ​在QT5中,串口通信是借助一个QSerialPor ...

  9. 用python做一个上位机串口通信_【教程】简易Python上位机之LED控制

    电子爱好者应该不会对"上位机"这个词感到陌生,毕竟或多或少有过接触.但若是说到上位机的开发的话,大家就不一定熟悉了.很多电子爱好者完全没有接触过上位机的开发工作,他们真的没有相应的 ...

最新文章

  1. linux虚拟机漏洞修复,linux幽灵漏洞检测和修复方法
  2. [转载]基于数据挖掘技术入侵检测系统研究
  3. 分布式与人工智能课程(part3)--第三课
  4. jquery中的ajax方法(备忘)
  5. 飞鸽推广的超级商务微博的栏目介绍(二)
  6. 19 MM配置-BP业务伙伴-定义编码范围
  7. android LinearLayout和RelativeLayout实现精确布局
  8. 检测电脑硬件的软件_慎用优化软件 不然I7也会卡
  9. 用new创建一个二维数组,有两种方法,是等价的
  10. redmine cannot load such file – rbpdf-font
  11. webpack ,require.ensure配合oclazyload 实现ng1模块懒加载
  12. nlu 意图识别_在NLU中,您无视危险的意图
  13. MySQL(6)-----数据类型
  14. Java调用Gdal写Esri ShapeFile文件工具类
  15. One More Check: Making “Fake Background” Be Tracked Again
  16. 斐波那契数列各种方法求解
  17. 在网络世界中如何才能保护好自己的安全?
  18. 三维建模之太空战舰——我们的征途是星辰大海!
  19. 重庆顶味香手把手教你做重庆肥肠面!几个小妙招秒杀路边面馆
  20. ZigBee的无线通信与网络组建

热门文章

  1. vue 保留小数点厚一位_h5上完美支持自定义输入小数点前多少位和小数点后多少位(vue)...
  2. 平均无故障时间100万小时_【行业动态】三菱J系列重型燃气轮机达新里程碑:100万商业运行小时数...
  3. html让图片自动旋转360,html5 canvas 360图片旋转制作抽奖转盘代码
  4. css3切角文本框_CSS3:linear-gradient切角画册
  5. 5-10多分支网络结构
  6. 3-15Pytorch与分布函数
  7. java jpanel 叠加_java – 如何在JPanel上叠加,调整大小和居中组件?
  8. 制造业数字化转型的困难_智能制造如何助力企业转型升级?百家制造业企业共谋数字化转型路...
  9. static在php中,php中static关键字在类中的使用
  10. c语言 结构体 选择题,C语言结构体共用体选择题(新).doc