IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 1.5 haas506 2.0开发教程-driver-UART -> 正文阅读

[嵌入式]1.5 haas506 2.0开发教程-driver-UART

1.硬件图

在这里插入图片描述

2.案例

  • haas506上有三种UART串口,分别支持TTL、RS-232、RS-485 。
  • 下面案例分别检测三种串口的输出。main.py与board.json程序只更改了调用端口。
  • 烧录程序时全部默认使用TTL。检测时需要跟换串口连线。

在这里插入图片描述

1.TTL

(1)案例说明

  • 使用TTL进行数据的发送和读取。由于默认使用TTL作为repl口,所以使用TTL进行数据的发送和接收需要在board.json中进行设置,即将repl口重定向到其他串口上,如RS232。
  • 连线如下,电源线不接
RXTXGND
XTRXGND

在这里插入图片描述
(2)main.py

# coding=utf-8
# This is a sample Python script.
import utime
from driver import UART
#串口实例化
uart0=UART()
uart0.open("serial1")
while True:
    #创建一个readBuf字节数组,用于存放串口读取到的数据
    readBuf=bytearray(4)
    #串口读
    readSize=uart0.read(readBuf)
    # #创建一个writeBuf字节数组,将读取到的readBuf中的数据赋值给writeBuf
    # writeBuf0=bytearray(4)
    # writeBuf0[0]=readBuf[0]
    # writeBuf0[1]=readBuf[1]
    # writeBuf0[2]=readBuf[2]
    # writeBuf0[3]=readBuf[3]    
    # #打印串口读取到的数据
    # uart0.write(writeBuf0) 
    uart0.write(readBuf)
    utime.sleep_ms(1000)    

(3)board.json

{
    "name": "haas506",
   "version": "1.0.0",
   "io": {
     "serial1":{
       "type":"UART",
       "port":0,
       "dataWidth":8,
       "baudRate":115200,
       "stopBits":1,
       "flowControl":"disable",
       "parity":"none"
     },
     "serial2":{
       "type":"UART",
       "port":1,
       "dataWidth":8,
       "baudRate":115200,
       "stopBits":1,
       "flowControl":"disable",
       "parity":"none"
     },
     "serial3":{
       "type":"UART",
       "port":2,
       "dataWidth":8,
       "baudRate":115200,
       "stopBits":1,
       "flowControl":"disable",
       "parity":"none"
     }
   },
   "debugLevel": "ERROR",
   "repl":"enable",
   "replPort":1
   }

(4)效果图
当没有数据输入默认接收\0\0\0\0,可以尝试发送不同长度字符串
在这里插入图片描述

2.RS232

(1)案例说明

  • 使用TTL烧录,使用RS232进行数据的发送和读取。
    (2)main.py
# coding=utf-8
# This is a sample Python script.
# coding=utf-8
# This is a sample Python script.
import utime
from driver import UART
#串口实例化
uart1=UART()
uart1.open("serial2")
while True:
    #创建一个readBuf字节数组,用于存放串口读取到的数据
    readBuf=bytearray(4)
    #串口读
    readSize=uart1.read(readBuf)
    # #创建一个writeBuf字节数组,将读取到的readBuf中的数据赋值给writeBuf
    # writeBuf1=bytearray(4)
    # writeBuf1[0]=readBuf[0]
    # writeBuf1[1]=readBuf[1]
    # writeBuf1[2]=readBuf[2]
    # writeBuf1[3]=readBuf[3]    
    # #打印串口读取到的数据
    # uart1.write(writeBuf1)
    uart1.write(readBuf)
    utime.sleep_ms(1000)

(3)board.json

{
 "name": "haas506",
"version": "1.0.0",
"io": {
  "serial1":{
    "type":"UART",
    "port":0,
    "dataWidth":8,
    "baudRate":115200,
    "stopBits":1,
    "flowControl":"disable",
    "parity":"none"
  },
  "serial2":{
    "type":"UART",
    "port":1,
    "dataWidth":8,
    "baudRate":115200,
    "stopBits":1,
    "flowControl":"disable",
    "parity":"none"
  },
  "serial3":{
    "type":"UART",
    "port":2,
    "dataWidth":8,
    "baudRate":115200,
    "stopBits":1,
    "flowControl":"disable",
    "parity":"none"
  }
},
"debugLevel": "ERROR"
}

(4)效果图
检测连线如下

RXTXGND
XTRXGND

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.RS485

(1)案例说明

  • 使用TTL烧录,使用RS485进行数据的发送和读取。
    (2)main.py
# coding=utf-8
# This is a sample Python script.
import utime
from driver import UART
#串口实例化
uart2=UART()
uart2.open("serial3")
while True:
    #创建一个readBuf字节数组,用于存放串口读取到的数据
    readBuf=bytearray(4)
    #串口读
    readSize=uart2.read(readBuf)
    # #创建一个writeBuf字节数组,将读取到的readBuf中的数据赋值给writeBuf
    # writeBuf2=bytearray(4)
    # writeBuf2[0]=readBuf[0]
    # writeBuf2[1]=readBuf[1]
    # writeBuf2[2]=readBuf[2]
    # writeBuf2[3]=readBuf[3]    
    # #打印串口读取到的数据
    # uart2.write(writeBuf2) 
    uart2.write(readBuf)
    utime.sleep_ms(1000)

(3)board.json

{
 "name": "haas506",
"version": "1.0.0",
"io": {
  "serial1":{
    "type":"UART",
    "port":0,
    "dataWidth":8,
    "baudRate":115200,
    "stopBits":1,
    "flowControl":"disable",
    "parity":"none"
  },
  "serial2":{
    "type":"UART",
    "port":1,
    "dataWidth":8,
    "baudRate":115200,
    "stopBits":1,
    "flowControl":"disable",
    "parity":"none"
  },
  "serial3":{
    "type":"UART",
    "port":2,
    "dataWidth":8,
    "baudRate":115200,
    "stopBits":1,
    "flowControl":"disable",
    "parity":"none"
  }
},
"debugLevel": "ERROR"
}

(4)效果图
测试连线

ABGND
ABGND

在这里插入图片描述
在这里插入图片描述

3.Class-UART函数库

openwritereadclosesetBaudRate
打开uartuart写操作uart读操作关闭uart设置波特率
  • GPIO
  • 实例化
    • uart=UART()
  • uart.open(params)
    • 作用:打开指定的串口,如TTL、RS232、RS485
    • 参数:params是一个字符串,需要在board.json中预先定义
    • 返回:0成功,其他值则失败
  • uart.write(writeBuf)
    • 作用:串口写数据
    • 参数:writeBuf是一个数组,用来保存待写入的数据,该数据可以通过串口写操作,被发送出去
    • 返回:writeBuf数组的长度
  • uart.read(readBuf)
    • 作用:串口读数据
    • 参数:readBuf是一个数组,用来保存通过串口读操作获得的数据
    • 返回:readBuf数组的长度
  • uart.close()
    • 作用:关闭串口
    • 返回:0成功,其他值则失败
  • uart.setBaudRate(params)
    • 作用:设置波特率
    • 参数:params是int型数据,配置波特率的值
    • 返回:0成功,其他失败

4.总结

本节介绍了如何使用haas506的driver库的UART模块,实现了TTL、RS232、RS485的数据的发送和读取。需要注意的有几点:

  1. 默认使用TTL作为repl口(交互式输入),如果使用TTL作为串口进行数据的收发,需要在board.json中重定向repl口。配置好就可以使用TTL,同时被重定向的串口(如Rs232),就不能使用uart.write()、uart.read()了。
  2. 串口的一些配置可以在board.json中进行,如数据长度、校验位、波特率等。
  3. 如果觉得打印的日志很多,可以将board.json的"debugLevel"的值改为 “ERROR”。
  4. 波特率可以在board.json中设置,当在调试的时候发现所设置的波特率达不到预期的效果,可以使用setBaudRate()重新设置波特率。
  5. 烧录程序默认使用TTL。
  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-03-06 13:17:11  更:2022-03-06 13:17:45 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 8:31:38-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码