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

news2024/11/28 10:58:32

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.3V
 
print("测试PWM输出")

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


2、GPIO

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

配置D2输出:

配置输出高电平:

测试代码:

gpio_cfg(2, 1) --配置模式D2 = 1-GPIO_OUT
gpio_write(2, 1) --设置输出D2 = 1
 
set_tvcc(3.30)  --设置电平为3.3V
 
print("测试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.3V
 
print("测试D2输出高电平")
 
for i = 1, 10, 1 do
 
  count, freq, duty = m_read("DETPULSE") --返回脉冲个数(整数)、频率(Hz 浮点数)、占空比(% 浮点数)
  print(string.format("脉冲数:%d, 频率:%f, 占空比:%f", count, freq, duty))
  delayms(1000)
 
end
 
m_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.coloradmin.cn/o/2227598.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Cri-Dockerd】安装cri-dockerd

cri-dockerd的作用: 在k8s1.24之前。k8s会通过dockershim来调用docker进行容器运行时containerd,并且会自动安装dockershim,但是从1.24版本之前k8s为了降低容器运行时的调用的复杂度和效率,直接调用containerd了,并且…

java实现的音视频格式转化器

一、前言 最近写了一款图形界面版的音视频格式转化器&#xff0c;可以实现将多种视频之间进行转化&#xff0c;非常好用&#xff0c;如将AVI转换为&#xff0c;TS&#xff0c;FLV&#xff0c;MP4等。音频可将MP3转成WAV。 二、实现 1.需引入相关maven依赖。 <!-- 核心包 -…

Java知识巩固(十二)

I/O JavaIO流了解吗&#xff1f; IO 即 Input/Output&#xff0c;输入和输出。数据输入到计算机内存的过程即输入&#xff0c;反之输出到外部存储&#xff08;比如数据库&#xff0c;文件&#xff0c;远程主机&#xff09;的过程即输出。数据传输过程类似于水流&#xff0c;因…

1.3 面向对象 C++面试问题

1.3.1 简述一下什么是面向对象,面向对象与面向过程的区别 什么是面向对象 面向对象&#xff08;Object-Oriented Programming&#xff0c;OOP&#xff09;是一种编程范式&#xff0c;它通过将现实世界中的实体抽象为“对象”来组织代码。面向对象编程关注对象及其交互&#x…

Visual Studio Code

代码自动保存 打开设置搜索auto save&#xff0c;设置为afterDelay 设置延迟时间&#xff0c;单位是毫秒 启用Ctrl鼠标滚轮对字体进行缩放 搜索Mouse Wheel Zoom&#xff0c;把该选项勾选上即可 Python插件 运行和调试Python

Hash表算法

哈希表 理论知识&#xff08;本文来自于代码随想录摘抄&#xff09;什么是哈希常见的三种哈希结数组&#xff1a;set:map:其他常用方法或者技巧&#xff08;自己总结的&#xff09; 练习题和讲解有效的字母移位词349. 两个数组的交集1. 两数之和454. 四数相加 II15. 三数之和 总…

广泛的四款录屏工具专业软件解析!!!

当代社会的进步&#xff0c;电脑、手机等数码产品的普及&#xff0c;改变了我们的沟通形式&#xff0c;只需要动动手指&#xff0c;就能实现视频连接&#xff0c;影像播放等。有时候就需要我们录屏留存。在市面上的录屏软件种类繁多&#xff0c;从简洁易用的小工具到功能丰富的…

通俗直观介绍ChatGPT背后的大语言模型理论知识

“AI 的 iPhone 时刻到来了”。非算法岗位的研发同学’被迫’学习 AI&#xff0c;产品岗位的同学希望了解 AI。但是&#xff0c;很多自媒体文章要么太严谨、科学&#xff0c;让非科班出身的同学读不懂&#xff1b;要么&#xff0c;写成了科幻文章&#xff0c;很多结论都没有充分…

力扣21 : 合并两个有序链表

链表style 描述&#xff1a; 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例&#xff1a; 节点大小相同时&#xff0c;l1的节点在前 何解&#xff1f; 1&#xff0c;遍历两个链表&#xff0c;挨个比较节点大小 同时遍…

MATLAB——入门知识

内容源于b站清风数学建模 目录 1.帮助文档 2.注释 3.特殊字符 4.设置MATLAB数值显示格式 4.1.临时更改 4.2.永久改 5.常用函数 6.易错点 1.帮助文档 doc sum help sum edit sum 2.注释 ctrl R/T 3.特殊字符 4.设置MATLAB数值显示格式 4.1.临时更改 format lon…

LCR 024. 反转链表 最细图片逐行解析过程

LCR 024. 反转链表 给定单链表的头节点 head &#xff0c;请反转链表&#xff0c;并返回反转后的链表的头节点。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5] 输出&#xff1a;[5,4,3,2,1]示例 2&#xff1a; 输入&#xff1a;head [1,2] 输出&#xff1a;[2,1]示例…

【JavaEE】【多线程】定时器

目录 一、定时器简介1.1 Timer类1.2 使用案例 二、实现简易定时器2.1 MyTimerTask类2.2 实现schedule方法2.3 构造方法2.4 总代码2.5 测试 一、定时器简介 定时器&#xff1a;就相当于一个闹钟&#xff0c;当我们定的时间到了&#xff0c;那么就执行一些逻辑。 1.1 Timer类 …

TVM前端研究--Relay

文章目录 深度学习IR梳理1. IR属性2. DL前端发展3. DL编译器4. DL编程语言Relay的主要内容一、Expression in Relay1. Dataflow and Control Fragments2. 变量3. 函数3.1 闭包3.2 多态和类型关系3.3. Call4. 算子5. ADT Constructors6. Moudle和Global Function7. 常量和元组8.…

SSL/TLS 密码套件漏洞分析以及修复方法

1. 前言 在当今数字化时代&#xff0c;网络安全至关重要。SSL/TLS 协议作为保障网络通信安全的重要手段&#xff0c;广泛应用于各类网络应用中。然而&#xff0c;如同任何技术一样&#xff0c;SSL/TLS 也并非绝对安全&#xff0c;存在着一些可能被攻击者利用的漏洞。本文将深入…

stm32入门教程--DMA 超详细!!!

目录 简介 工作模式 1、数据转运DMA 2、ADC扫描模式DMA 简介 工作模式 1、数据转运DMA 这个例子的任务是将SRAM的数组DataA&#xff0c;转运到另一个数组DataB中&#xff0c;这个基本结构里的各个参数应该如何配置呢&#xff1f; 首先是外设站点和存储器站点的起始地址、…

大数据新视界 -- 大数据大厂之大数据重塑影视娱乐产业的未来(4 - 3)

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

TIFS-2024 细粒度表示和重组在换衣行人重识别中的应用

总体结论 本文提出了一种新的细粒度表示与重构&#xff08;FIRe2&#xff09;框架&#xff0c;用于解决布变人重识别问题。通过细粒度特征挖掘和属性重构&#xff0c;FIRe2在不依赖任何辅助信息的情况下&#xff0c;实现了最先进的性能。该方法在多个基准数据集上取得了显著的…

基于JSP的篮球系列网上商城系统【附源码】

基于JSP的篮球系列网上商城系统 效果如下&#xff1a; 系统首页界面 商品信息界面 购物车界面 购物车界面 管理员登录界面 管理员功能界面 用户注册界面 我的收藏界面 研究背景 21世纪&#xff0c;我国早在上世纪就已普及互联网信息&#xff0c;互联网对人们生活中带来了无限…

重学SpringBoot3-怎样优雅停机

更多SpringBoot3内容请关注我的专栏&#xff1a;《SpringBoot3》 期待您的点赞&#x1f44d;收藏⭐评论✍ 重学SpringBoot3-怎样优雅停机 1. 什么是优雅停机&#xff1f;2. Spring Boot 3 优雅停机的配置3. Tomcat 和 Reactor Netty 的优雅停机机制3.1 Tomcat 优雅停机3.2 Reac…

MySQL 数据库备份与恢复全攻略

MySQL 数据库备份与恢复全攻略 引言 在现代应用中&#xff0c;数据库是核心组件之一。无论是个人项目还是企业级应用&#xff0c;数据的安全性和完整性都至关重要。为了防止数据丢失、损坏或意外删除&#xff0c;定期备份数据库是必不可少的。本文将详细介绍 MySQL 数据库的备…