H7-TOOL的LUA小程序教程第16期:脉冲测量,4路PWM,多路GPIO和波形打印(2024-10-25, 更新完毕)

LUA脚本的好处是用户可以根据自己注册的一批API(当前TOOL已经提供了几百个函数供大家使用),实现各种小程序,不再限制Flash里面已经下载的程序,就跟手机安装APP差不多,所以在H7-TOOL里面被广泛使用,支持在线调试运行,支持离线运行。TOOL的LUA教程争取做到大家可以无痛调用各种功能函数,不需要学习成本。

争取2.27版本固件发布前,H7-TOOL的LUA API手册同步上线

简介

脉冲测量,4路PWM,多路GPIO可以在上位机端设置,也可以显示屏端设置

详细使用说明可以看在线或者离线操作说明手册:H7-TOOL操作说明和客户常见问题汇总贴,含PDF离线版(2024-08-16) - H7-TOOL开发工具 - 硬汉嵌入式论坛 - Powered by Discuz!

用到的D0 -D9引脚是指的这几个引脚:

注意TVCC电平决定D0 - D9电平范围,支持1.2V - 5.0V


LUA函数说明:

1、PMW

lua 接口函数  gpio_pwm_out(pin, freq, duty)
   --pin : 端口号,0、1、3、4
   --freq : 频率,Hz单位,整数
   --duty :占空比,百分比,0 - 100.0%
   --推挽输出,电平由TVCC电压决定(可设置)   --四路共用的一个TIM,因此频率必须相同。占空比可以不同

函数用法:
    gpio_pwm_out(0, 1000, 50.00)    --D0口输出1KHz,占空比50.00%的方波
    gpio_pwm_out(1, 1000, 40.00)    --D1口输出1KHz,占空比40.00%的方波
    gpio_pwm_out(3, 1000, 30.00)    --D3口输出1KHz,占空比30.00%的方波
    gpio_pwm_out(4, 1000, 10.00)    --D4口输出1KHz,占空比10.00%的方波


    gpio_pwm_out(0, 0, 0)       --D0口PWM关闭,输出0电平
    gpio_pwm_out(1, 0, 0)       --D1口PWM关闭,输出0电平
    gpio_pwm_out(3, 0, 100)    --D3口PWM关闭,输出1电平
    gpio_pwm_out(4, 0, 100)    --D4口PWM关闭,输出1电平


    set_tvcc(3.30)  --设置电平为3.3V
实际测试代码:

gpio_pwm_out(0, 1000, 50.00)    --D0口输出1KHz,占空比50.00%的方波
gpio_pwm_out(1, 1000, 40.00)    --D1口输出1KHz,占空比40.00%的方波
gpio_pwm_out(3, 1000, 30.00)    --D3口输出1KHz,占空比30.00%的方波
gpio_pwm_out(4, 1000, 10.00)    --D4口输出1KHz,占空比10.00%的方波set_tvcc(3.30)  --设置电平为3.3Vprint("测试PWM输出")

示波器测试D3和D4的输出效果:


2、GPIO

GPIO的设置选项比较多,推荐直接使用这里的LUA小助手生成配置比较方便,比如配置D2输出高电平

配置D2输出:

配置输出高电平:

测试代码:

gpio_cfg(2, 1) --配置模式D2 = 1-GPIO_OUT
gpio_write(2, 1) --设置输出D2 = 1set_tvcc(3.30)  --设置电平为3.3Vprint("测试D2输出高电平")

示波器测量D2输出高电平


3、脉冲测量

H7-TOOL 的D1接口,可以测量输入脉冲的频率、占空比、个数。

下面是 lua程序用法:

m_init("DETPULSE")  --进入D1测量脉冲模式   
count, freq, duty = m_read("DETPULSE") --返回脉冲个数(整数)、频率(Hz 浮点数)、占空比(% 浮点数)
m_write("DETPULSE", 0,0,0)  --清零脉冲个数、频率、占空比
m_uninit("DETPULSE")  --退出D1测量脉冲模式

比如我们这里使用D1端口测量1KHz的脉冲信号。直接使用TOOL的信号发生器功能输出即可,峰峰值3.3V,直流偏置1.65, 频率1KHz

测试代码:

m_init("DETPULSE")  --进入D1测量脉冲模式  set_tvcc(3.30)  --设置电平为3.3Vprint("测试D2输出高电平")for i = 1, 10, 1 docount, freq, duty = m_read("DETPULSE") --返回脉冲个数(整数)、频率(Hz 浮点数)、占空比(% 浮点数)print(string.format("脉冲数:%d, 频率:%f, 占空比:%f", count, freq, duty))delayms(1000)endm_uninit("DETPULSE")  --退出D1测量脉冲模式

实际效果:


4、波形打印

封装了一个 print_wave,方便大家将采集的数据以波形方式打印出来。使用比较简单,比如我们要测试tan函数:

for j=-10, 10, 0.1 do                                  s = string.format("%f", math.tan(j)) -- 转换成字符格式print(s)                                   print_wave(s)delayms(20)                                   
end

又比如打印三路,就是%f, %f,%f

for j=-10, 10, 0.1 do                                  s = string.format("%f,%f,%f", math.tan(j),math.tan(j)/2,math.tan(j)/4) -- 转换成字符格式print(s)                                   print_wave(s)delayms(20)                                   
end

动态效果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/459367.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JS轮播图实现自动轮播、悬浮停止轮播、点击切换,下方指示器与图片联动效果

代码&#xff1a; <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><s…

【学术会议论文投稿】大数据治理:解锁数据价值,引领未来创新

第六届国际科技创新学术交流大会&#xff08;IAECST 2024&#xff09;_艾思科蓝_学术一站式服务平台 更多学术会议请看&#xff1a;https://ais.cn/u/nuyAF3 目录 引言 一、大数据治理的定义 二、大数据治理的重要性 三、大数据治理的核心组件 四、大数据治理的实践案例…

w外链如何跳转微信小程序

要创建外链跳转微信小程序&#xff0c;主要有以下几种方法&#xff1a; 使用第三方工具生成跳转链接&#xff1a; 注册并登录第三方外链平台&#xff1a;例如 “W外链” 等工具。前往该平台的官方网站&#xff0c;使用手机号、邮箱等方式进行注册并登录账号。选择创建小程序外…

记一次靶场的文件上传

刚开始一个上传的页面&#xff0c;尝试了txt,png,ppt,php,这些常见的后缀文件发现都能上传成功&#xff0c;并且页面一点回显都没有&#xff0c;自己都不知道是被过滤了什么类型的文件&#xff0c; 后面不经意间打开了自己的证件照&#xff0c;是jpg格式的&#xff0c;于是尝试…

EPLAN中绘制PLC盒子时如何切换不同品牌PLC的IO地址?

EPLAN中绘制PLC盒子时如何切换不同品牌PLC的IO地址? 如下图所示,我这里需要绘制一个三菱的PLC盒子,但是我在插入PLC数字输入点时,该点位的地址却显示是西门子PLC的地址I0.0,那么如何将其修改为三菱PLC的地址呢? 如下图所示,找到选项-----设置, 如下图所示,找到项目---…

【银河麒麟高级服务器操作系统·实例分享】裸金属服务器开机失败分析及处理建议

了解更多银河麒麟操作系统全新产品&#xff0c;请点击访问 麒麟软件产品专区&#xff1a;https://product.kylinos.cn 开发者专区&#xff1a;https://developer.kylinos.cn 文档中心&#xff1a;https://documentkylinos.cn 现象描述 裸金属物理服务器开机卡在EFI stub页面…

2024年【焊工(中级)】最新解析及焊工(中级)考试总结

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 焊工&#xff08;中级&#xff09;最新解析参考答案及焊工&#xff08;中级&#xff09;考试试题解析是安全生产模拟考试一点通题库老师及焊工&#xff08;中级&#xff09;操作证已考过的学员汇总&#xff0c;相对有…

汽车IVI中控OS Linux driver开发实操(二十六):i.MX图形库

概述: 下表列出了整个GPU系列,在i.MX 6板上,只有6Quad和6QuadPlus支持OpenCL。表中还显示了OpenCL的关键性能指标GFLOPS的理论数量。一些基准测试,如Clpeak,可用于验证它。 i.MX G2D API G2D应用程序编程接口(API)设计为易于理解和使用2DBit blit(BLT)功能。它允许用…

【算法】Kruskal最小生成树算法

目录 一、最小生成树 二、Kruskal算法求最小生成树 三、代码 一、最小生成树 什么是最小生成树&#xff1f; 对于一个n个节点的带权图&#xff0c;从中选出n-1条边&#xff08;保持每个节点的联通&#xff09;构成一棵树&#xff08;不能带环&#xff09;&#xff0c;使得…

apisix的原理及作用,跟spring cloud gateway有什么区别?

apache APISIX 是一个高性能、可扩展的开源 API 网关&#xff0c;它主要用于处理 API 请求、流量管理、安全控制和服务治理。APISIX 可以将复杂的服务架构中的不同服务通过统一的网关来进行管理和监控&#xff0c;为微服务架构提供了便捷的流量入口管理方式。 APISIX 的原理 …

大模型系列——AlphaZero/强化学习/MCTS

AlphaGo Zero无需任何人类历史棋谱&#xff0c;仅使用深度强化学习&#xff0c;从零开始训练三天的成就已远远超过了人类数千年积累的围棋知识。 1、围棋知识 &#xff08;1&#xff09;如何简单理解围棋知识 &#xff08;2&#xff09;数子法分胜负&#xff1a;https://zhu…

2024年【金属非金属矿山(地下矿山)安全管理人员】考试报名及金属非金属矿山(地下矿山)安全管理人员复审考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 金属非金属矿山&#xff08;地下矿山&#xff09;安全管理人员考试报名是安全生产模拟考试一点通生成的&#xff0c;金属非金属矿山&#xff08;地下矿山&#xff09;安全管理人员证模拟考试题库是根据金属非金属矿山…

uniapp开发【选择地址-省市区功能】,直接套用即可

一、效果展示 二、代码 <template><view><view class="user_info"><view class="item"

【动手学强化学习】part2-动态规划算法

阐述、总结【动手学强化学习】章节内容的学习情况&#xff0c;复现并理解代码。 文章目录 一、什么是动态规划&#xff1f;1.1概念1.2适用条件 二、算法示例2.1问题建模2.2策略迭代&#xff08;policyiteration&#xff09;算法2.2.1伪代码2.2.2完整代码2.2.3运行结果2.2.4代码…

Elastic Stack - FileBeat 入门浅体验

Filebeat 是 Elastic Stack 中的一个轻量级日志转发器&#xff0c;主要用于收集和转发日志数据。Filebeat 作为代理安装在您的服务器上&#xff0c;可以监控您指定的日志文件或位置&#xff0c;收集日志事件&#xff0c;并将其转发到 Elasticsearch 或 Logstash 进行索引。 一…

Xcode文件默认存储位置-使用c++file保存文件默认路径以及设置为路径为当前项目路径

Xcode文件默认存储位置-使用cfile保存文件默认路径以及设置为路径为当前项目路径 1.概述 使用Xcode工具开发时候&#xff0c;遇到C调用file创建文件后&#xff0c;在当前项目中找不到文件路径。这是由于xcode会将文件保存到默认设置的路径。下面是查看文件默认存储路径和修改…

Linux高手进阶

查看系统资源占用&#xff1a; top&#xff1a;查看CPU、内存使用情况&#xff0c;类似 windows 的任务管理器 默认 5秒刷新一次语法&#xff1a; 直接输入 top按 q 或 ctrl c 退出内容详解&#xff1a; 第一行&#xff1a; top&#xff1a;命令名称 -系统时间up 23:57 min &…

单位不同的现货黄金价格怎么换算?

在国际贵金属市场上&#xff0c;现货黄金的价格是以“美元/盎司”来计算的&#xff0c;一金衡盎司的精确定义是31.1034768 克&#xff0c;早在1828年5月19日的国会法案中&#xff0c;这个单位就已经被美国采用作官方的造币重量标准。 国际现货黄金和国内金价价格的换算公式是&a…

大型项目成功秘诀:软件工程师的实践经验分享 ​

一、介绍 本指南适用于刚开始管理大型复杂项目的软件工程师。这些项目通常具有高度的模糊性&#xff0c;需要战略指导&#xff0c;远远超出了常规工程任务的范围。 通常&#xff0c;工程师们并不是因为自己主动选择而掌管这些项目&#xff0c;而是因为这些项目是交给他们的。…

深度学习-学习率调整策略

在深度学习中&#xff0c;学习率调整策略&#xff08;Learning Rate Scheduling&#xff09;用于在训练过程中动态调整学习率&#xff0c;以实现更快的收敛和更好的模型性能。选择合适的学习率策略可以避免模型陷入局部最优、震荡不稳定等问题。下面介绍一些常见的学习率调整策…