PYB操作-UART操作

简介: PYB操作-UART操作

UART是Universal Asynchronous Receiver/Transmitter(通用异步收发传输器)的简称,在单片机和嵌入式系统中,串口(UART)一直都是非常重要的外设。虽然串口的速度并不快,但是因为它使用简单(串口可能是两个芯片之间传输数据最简单的方式),占用软件和硬件资源少,所以在通信、控制、数据传输、仿真调试等许多方面有非常广泛应用。很多设备或者模块甚至都会提供专用的串口接口用于通信和控制,如GPRS模块、蓝牙/WiFi透传模块等。UART使用一个GPIO做发送,一个GPIO做接收,没有单独的时钟信号。收发双方需要先约定好相同的

波特率、数据位、校验位、停止位等参数才能正常通信,所以也叫做异

步串行总线。

在MicroPython中,操作串口和使用GPIO一样简单。

开发环境


putty、PYB nano

UART使用


串口的基本使用方式是,首先定义使用的串口,再设置串口参数(最主要就是设置波特率),然后通过 write()函数发送缓冲区或者字符串。或者用 any()函数判断是否接收到数据,再用read()函数读取数据。

UART的函数如下:

(1)class pyb.UART(bus,…)

bus:1-6,或者‘XA’,‘XB’,‘YA’,‘YB’。

PYB nano对应串口


The physical pins of the UART busses are:

UART(4) is on XA: (TX, RX) = (X1, X2) = (PA0, PA1)

UART(1) is on XB: (TX, RX) = (X9, X10) = (PB6, PB7)

UART(6) is on YA: (TX, RX) = (Y1, Y2) = (PC6, PC7)

UART(3) is on YB: (TX, RX) = (Y9, Y10) = (PB10, PB11)

UART(2) is on: (TX, RX) = (X3, X4) = (PA2, PA3)

UART函数解释


class pyb.UART(bus, …)

bus: 1-6,或者‘XA’,‘XB’,‘YA’,‘YB’.

uart.init(baudrate, bits=8, parity=None, stop=1, *,timeout=1000,flow=None, timeout_char=0,read_buf_len=64),初始化

baudrate:波特率

bits:数据位,7/8/9

parity:校验,None, 0 (even) or 1 (odd)

stop:停止位,1/2

flow:流控,可以是 None, UART.RTS, UART.CTS or UART.RTS | UART.CTS

timeout:读取一个字节超时时间(ms)

timeout_char:两个字节之间超时时间

read_buf_len:读缓存长度

uart.deinit():关闭串口

uart.any():返回缓冲区数据个数,大于0代表有数据

uart.writechar(char):写入一个字节

uart.read([nbytes]):读取最多nbytes个字节。如果数据位是9bit,那么一个数据占用两个字节,并且nbytes必须是偶数

uart.readall():读取所有数据

uart.readchar():读取一个字节

uart.readinto(buf[, nbytes])

buf:数据缓冲区

nbytes:最大读取数量

uart.readline():读取一行

uart.write(buf):写入缓冲区。在9bits模式下,两个字节算一个数据

uart.sendbreak():往总线上发送停止状态,拉低总线13bit时间

测试发送代码


from pyb import UART
u1 = UART(2, 9600)#设置波特率和串口号
u1.writechar(97)#发送单个字符a
u1.write('123')#发送字符串

测试接收代码


from pyb import UART
u1 = UART(2, 9600)#设置波特率和串口号
u1.writechar(97)#发送单个字符a
u1.write('123')#发送字符串
while(1):
  buf=u1.readchar()#从缓冲区读取一个字符
  if(buf==97):
    print("pass")
目录
相关文章
|
Linux
Linux下安装中文输入法总结
Linux下安装中文输入法总结
5655 0
|
3月前
|
人工智能 运维 物联网
民用卡 vs 专业卡 vs 云 GPU:大模型微调该选哪种?
本文深入解析大模型微调中民用卡、专业卡与云GPU的选型难题,从显存、算力、稳定性、成本四大维度对比三类GPU差异,结合个人、团队、企业不同场景,提供“三步选型法”与实测数据,帮你匹配最优方案,实现性能与成本的平衡。
|
9月前
|
传感器 机器学习/深度学习 分布式计算
卡尔曼滤波的多传感器数据融合算法
卡尔曼滤波的多传感器数据融合算法
1394 0
|
API
时间操作[取当前北京时间]免费API接口教程
该接口用于获取当前北京时间,支持时间戳等多种格式。请求方式为POST或GET,需提供用户ID、用户KEY及返回格式类型。接口免费,建议使用个人ID与KEY以独享调用频次。返回数据包含状态码和时间信息,支持多种时间格式输出。详情参见:https://www.apihz.cn/api/timeget.html
5014 4
|
消息中间件 Web App开发 API
FreeRTOS介绍 和 将FreeRTOS移植到STM32F103C8T6
FreeRTOS介绍 和 将FreeRTOS移植到STM32F103C8T6
FreeRTOS介绍 和 将FreeRTOS移植到STM32F103C8T6
|
Ubuntu 应用服务中间件 nginx
docker入门-快速学会docker
本文介绍了Docker的基本概念,包括镜像、容器、tar文件、Dockerfile和仓库,并通过实际操作演示了如何使用Docker。从拉取Nginx镜像、运行容器、修改容器内容、保存容器为新镜像,到使用Dockerfile构建自定义镜像,最后讲解了如何保存和恢复镜像。文中还推荐了一个在线实践平台Play with Docker,方便读者快速上手Docker。
1103 5
docker入门-快速学会docker
|
网络协议 安全 Shell
`nmap`是一个开源的网络扫描工具,用于发现网络上的设备和服务。Python的`python-nmap`库允许我们在Python脚本中直接使用`nmap`的功能。
`nmap`是一个开源的网络扫描工具,用于发现网络上的设备和服务。Python的`python-nmap`库允许我们在Python脚本中直接使用`nmap`的功能。
|
新零售 搜索推荐 物联网
物联网应用托管之奇点魔镜培训 | 学习笔记
快速学习物联网应用托管之奇点魔镜培训
474 1
物联网应用托管之奇点魔镜培训  |  学习笔记
|
存储 JavaScript 前端开发
vue全家桶详解
vue全家桶详解
414 1
|
关系型数据库 MySQL 数据库
mysql 中登录报错:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)ERROR
mysql 中登录报错:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)ERROR