合宙 724UG 模块UART学习

2023-11-08 01:50
文章标签 模块 学习 uart 合宙 724ug

本文主要是介绍合宙 724UG 模块UART学习,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

3、合宙 724UG 模块UART学习

一、材料

724UG硬件设计手册
724UG原理图
API接口手册

二、UART 配置讲解

724UG有三个串口还有虚拟串口,可以查看硬件手册
在这里插入图片描述
UART 1包括数据线TXD和RXD,硬件流控控制线RTS和CTS,可以用作通用串口使用,用于传输数据,发送AT指令等,还可以使用硬件控制流。
UART 2可以用来下载软件和射频校准,以及通用串口等
UART 3一个通用串口,可以用作外接GPS等外设,传输数据等
HOST UART 用来软件调试时输出 AP trace
ZSP UART 用来软件调试时输出 CP trace
默认状态下,USB口 输出日志,可以更换为其他串口 如HOST UART、UART 1 。

2.1 通用串口配置

查看API手册,找到uart api,在luat扩展库在这里插入图片描述
使用uart.setup函数初始化串口
在这里插入图片描述
假如我们配置串口1,波特率为9600,数据位8位,无校验位,停止位1位,第六位和第七位与uart.on有关,第六位默认为nil,第七位默认0
,可如下配置,以及注册一个receive事件,见下面处理函数配置

local baud = uart.setup(uart_ID, 9600, 8, uart.PAR_NONE, uart.STOP_1, )

需要打开串口发送数据完成后,通过异步消息通知的功能配置
多注册一个sent事件,见下面处理函数配置,如下

local baud = uart.setup(uart_ID, 9600, 8, uart.PAR_NONE, uart.STOP_1, nil, 1)

注册事件处理函数在这里插入图片描述
配置如下,
当我们不需要发送完了,不需要通知时,uart.setup的第六位第七位不需要配置,只需要注册一个"receive"事件,read_hd为处理函数名,可随便写,事件不可随便写

uart.on(uart_ID, "receive", read_hd)

如果uart.setup的第六位为0或nil,第七位为1,想发送完了数据,提示通知一下,可以配置两个事件,receive和sent事件

uart.on(uart_ID, "receive", read_hd)
uart.on(uart_ID, "sent", write_hd)

2.2 本文用到的其他uart 接口

uart.write() 写数据
在这里插入图片描述
比如 uart.write(1,“hello world!”) --向串口1,发送"hello world!"

uart.read()读字符数按在这里插入图片描述
比如local data=uart.read(1,"*s")–data存放读取的数据,**s 读出缓存区的字符串,如果一个"965 970",中间有一个空格,会分为两次接受

三、代码演示

用过串口1,发送指令ON打开,724UG开发板上的GPIO4蓝色LED灯,发送OFF,关闭LED灯
代码如下


--必须在这个位置定义PROJECT和VERSION变量
--PROJECT:ascii string类型,可以随便定义,只要不使用,就行
--VERSION:ascii string类型,如果使用Luat物联云平台固件升级的功能,必须按照"X.X.X"定义,X表示1位数字;否则可随便定义
PROJECT = "uart"
VERSION = "0.0.1"
require "sys"
--加载日志功能模块,并且设置日志输出等级
--如果关闭调用log模块接口输出的日志,等级设置为log.LOG_SILENT即可
require "log"
require "pins"
require "uart"--引入uart库
LOG_LEVEL = log.LOGLEVEL_TRACEpmd.ldoset(1, pmd.LDO_VLCD)
local uart_ID = 1--用来方便改串口号,需要用串口2,改成2就行
local setGpio4 = pins.setup(4, 0)--设置GPIO 4为输出,默认低电平local function read_hd()--接收处理函数local data = ""--定义一个字符串变量,用来存放串口读取的数据while true dodata = uart.read(uart_ID, "*s")if not data or string.len(data) == 0 then--判断读取到数据,没有跳出循环breakendif (data == "ON") then--如果接收到ON,GPIO4设置为1setGpio4(1)elseif (data == "OFF") then--OFF,设置为0setGpio4(0)enduart.write(uart_ID,"receive "..data.."\n")--输出到uart 1print("receive",data)--输出到日志end
endlocal function task1()-- local getGpio7 = pins.setup(7, Interrupt_re)local baud = uart.setup(uart_ID, 9600, 8, uart.PAR_NONE, uart.STOP_1, nil, 1)--初始化串口1,波特率9600uart.on(uart_ID, "receive", read_hd)--receive事件注册处理函数
end
--启动系统框架,下面不要随便动
sys.taskInit(task1)--创建一个任务
sys.init(0, 0)
sys.run()

发送ON
效果如下在这里插入图片描述
在这里插入图片描述
发送OFF
效果如下在这里插入图片描述
在这里插入图片描述

这篇关于合宙 724UG 模块UART学习的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/qq_45364793/article/details/105796653
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/367243

相关文章

Python logging模块使用示例详解

《Pythonlogging模块使用示例详解》Python的logging模块是一个灵活且强大的日志记录工具,广泛应用于应用程序的调试、运行监控和问题排查,下面给大家介绍Pythonlogging模... 目录一、为什么使用 logging 模块?二、核心组件三、日志级别四、基本使用步骤五、快速配置(bas

重新对Java的类加载器的学习方式

《重新对Java的类加载器的学习方式》:本文主要介绍重新对Java的类加载器的学习方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、介绍1.1、简介1.2、符号引用和直接引用1、符号引用2、直接引用3、符号转直接的过程2、加载流程3、类加载的分类3.1、显示

Python datetime 模块概述及应用场景

《Pythondatetime模块概述及应用场景》Python的datetime模块是标准库中用于处理日期和时间的核心模块,本文给大家介绍Pythondatetime模块概述及应用场景,感兴趣的朋... 目录一、python datetime 模块概述二、datetime 模块核心类解析三、日期时间格式化与

Python如何调用指定路径的模块

《Python如何调用指定路径的模块》要在Python中调用指定路径的模块,可以使用sys.path.append,importlib.util.spec_from_file_location和exe... 目录一、sys.path.append() 方法1. 方法简介2. 使用示例3. 注意事项二、imp

Python中模块graphviz使用入门

《Python中模块graphviz使用入门》graphviz是一个用于创建和操作图形的Python库,本文主要介绍了Python中模块graphviz使用入门,具有一定的参考价值,感兴趣的可以了解一... 目录1.安装2. 基本用法2.1 输出图像格式2.2 图像style设置2.3 属性2.4 子图和聚

Java学习手册之Filter和Listener使用方法

《Java学习手册之Filter和Listener使用方法》:本文主要介绍Java学习手册之Filter和Listener使用方法的相关资料,Filter是一种拦截器,可以在请求到达Servl... 目录一、Filter(过滤器)1. Filter 的工作原理2. Filter 的配置与使用二、Listen

Python的time模块一些常用功能(各种与时间相关的函数)

《Python的time模块一些常用功能(各种与时间相关的函数)》Python的time模块提供了各种与时间相关的函数,包括获取当前时间、处理时间间隔、执行时间测量等,:本文主要介绍Python的... 目录1. 获取当前时间2. 时间格式化3. 延时执行4. 时间戳运算5. 计算代码执行时间6. 转换为指

Python正则表达式语法及re模块中的常用函数详解

《Python正则表达式语法及re模块中的常用函数详解》这篇文章主要给大家介绍了关于Python正则表达式语法及re模块中常用函数的相关资料,正则表达式是一种强大的字符串处理工具,可以用于匹配、切分、... 目录概念、作用和步骤语法re模块中的常用函数总结 概念、作用和步骤概念: 本身也是一个字符串,其中

Python中的getopt模块用法小结

《Python中的getopt模块用法小结》getopt.getopt()函数是Python中用于解析命令行参数的标准库函数,该函数可以从命令行中提取选项和参数,并对它们进行处理,本文详细介绍了Pyt... 目录getopt模块介绍getopt.getopt函数的介绍getopt模块的常用用法getopt模

python logging模块详解及其日志定时清理方式

《pythonlogging模块详解及其日志定时清理方式》:本文主要介绍pythonlogging模块详解及其日志定时清理方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录python logging模块及日志定时清理1.创建logger对象2.logging.basicCo