Эх сурвалжийг харах

fix:修改 Air8101 PWM 示例通道为 PWM2

mengyang 3 сар өмнө
parent
commit
b5168700f4

+ 2 - 4
module/Air8101/demo/pwm/main.lua

@@ -2,7 +2,7 @@
 @module  main
 @summary LuatOS用户应用脚本文件入口,总体调度应用逻辑
 @version 1.0
-@date    2025.11.05
+@date    2025.12.10
 @author  马梦阳
 @usage
 
@@ -20,11 +20,9 @@
     新风格 PWM 接口支持在运行中动态调整占空比和信号频率
 
 注意事项:
-1. 本 demo 演示所使用的是 Air8101 模组的 PWM4 通道(GPIO24,PIN33);
+1. 本 demo 演示所使用的是 Air8101 模组的 PWM2 通道(GPIO24,PIN33);
 2. PWM 功能需要使用 V2xxx 版本固件,固件下载链接:https://docs.openluat.com/air8101/luatos/firmware/;
 
-注意!!!!pwm.setFreq() 函数目前出现一些 BUG,调用成功后无法正常输出波形,正在紧急修复,时间 2025.10.29
-
 更多说明参考本目录下的 readme.md 文件;
 ]]
 

+ 34 - 27
module/Air8101/demo/pwm/pwm_app.lua

@@ -2,7 +2,7 @@
 @module  pwm_app
 @summary PWM 输出功能模块
 @version 1.0
-@date    2025.11.05
+@date    2025.12.10
 @author  马梦阳
 @usage
 本功能模块演示的内容为:
@@ -20,12 +20,19 @@
 3. 综合任务调度:顺序运行上述两种风格示例,并在关键节点进行日志输出
 
 注意事项:
-1. 本 demo 演示所使用的是 Air8101 模组的 PWM4 通道(GPIO24,PIN33);
+1. 本 demo 演示所使用的是 Air8101 模组的 PWM2 通道(GPIO24,PIN33);
 2. PWM 功能需要使用 V2xxx 版本固件,固件下载链接:https://docs.openluat.com/air8101/luatos/firmware/;
 
 本文件没有对外接口,直接在 main.lua 中 require "pwm_app" 就可以加载运行;
 ]]
 
+local result = pins.setup(33, "PWM2")
+if result then
+    log.info("PWM", "PWM2 通道配置成功(GPIO24,PIN33)")
+else
+    log.error("PWM", "PWM2 通道配置失败(GPIO24,PIN33)")
+end
+
 --[[
 旧风格 PWM 演示函数
 使用 pwm.open() 一次性完成配置和启动
@@ -34,22 +41,22 @@
 local function task1_old_pwm()
     log.info("PWM", "旧风格 PWM 示例开始")
 
-    -- 选择 PWM 通道 4
-    -- 注意:本 demo 演示所使用的是 Air8101 模组的 PWM4 通道(GPIO24,PIN33);
-    local pwm_channel = 4
+    -- 选择 PWM 通道 2
+    -- 注意:本 demo 演示所使用的是 Air8101 模组的 PWM2 通道(GPIO24,PIN33);
+    local pwm_channel = 2
 
     -- 第一次输出:1 kHz,45% 占空比,分频精度 100
     local pwm_success = pwm.open(pwm_channel, 1000, 45, 0, 100)
     if pwm_success then
-        log.info("PWM", "PWM4 通道开启成功: 信号频率 1000 Hz, 分频精度 100, 占空比 45%")
+        log.info("PWM", "PWM2 通道开启成功: 信号频率 1000 Hz, 分频精度 100, 占空比 45%")
     else
-        log.info("PWM", "PWM4 通道开启失败")
+        log.info("PWM", "PWM2 通道开启失败")
     end
 
     -- 持续 1 s 后关闭
     sys.wait(1000)
     pwm.close(pwm_channel)
-    log.info("PWM", "PWM4 通道已关闭")
+    log.info("PWM", "PWM2 通道已关闭")
 
     -- 增加 1 秒的间隔时间
     sys.wait(1000)
@@ -57,15 +64,15 @@ local function task1_old_pwm()
     -- 第二次输出:500 Hz,60% 占空比,分频精度 100
     local pwm_success = pwm.open(pwm_channel, 500, 60, 0, 100)
     if pwm_success then
-        log.info("PWM", "PWM4 通道开启成功: 信号频率 500 Hz, 分频精度 100, 占空比 60%")
+        log.info("PWM", "PWM2 通道开启成功: 信号频率 500 Hz, 分频精度 100, 占空比 60%")
     else
-        log.info("PWM", "PWM4 通道开启失败")
+        log.info("PWM", "PWM2 通道开启失败")
     end
 
     -- 持续 2 s 后关闭
     sys.wait(2000)
     pwm.close(pwm_channel)
-    log.info("PWM", "PWM4 通道已关闭")
+    log.info("PWM", "PWM2 通道已关闭")
 
     -- 增加 1 秒的间隔时间
     sys.wait(1000)
@@ -73,15 +80,15 @@ local function task1_old_pwm()
     -- 第三次输出:300 Hz,80% 占空比,分频精度 100
     local pwm_success = pwm.open(pwm_channel, 300, 80, 0, 100)
     if pwm_success then
-        log.info("PWM", "PWM4 通道开启成功: 信号频率 300 Hz, 分频精度 100, 占空比 80%")
+        log.info("PWM", "PWM2 通道开启成功: 信号频率 300 Hz, 分频精度 100, 占空比 80%")
     else
-        log.info("PWM", "PWM4 通道开启失败")
+        log.info("PWM", "PWM2 通道开启失败")
     end
 
     -- 持续 3 s 后关闭
     sys.wait(3000)
     pwm.close(pwm_channel)
-    log.info("PWM", "PWM4 通道已关闭")
+    log.info("PWM", "PWM2 通道已关闭")
 
     log.info("PWM", "旧风格 PWM 示例结束")
 end
@@ -95,24 +102,24 @@ end
 local function task2_new_pwm()
     log.info("PWM", "新风格 PWM 示例开始")
 
-    -- 选择 PWM 通道 4
-    -- 注意:本 demo 演示所使用的是 Air8101 模组的 PWM4 通道(GPIO24,PIN33);
-    local pwm_channel = 4
+    -- 选择 PWM 通道 2
+    -- 注意:本 demo 演示所使用的是 Air8101 模组的 PWM2 通道(GPIO24,PIN33);
+    local pwm_channel = 2
 
     -- 配置 PWM 参数:频率 1000 Hz、占空比 50%、分频精度 100
     local setup_success = pwm.setup(pwm_channel, 1000, 50, 0, 100)
     if setup_success then
-        log.info("PWM", "PWM4 配置成功: 信号频率 1000 Hz, 分频精度 100, 占空比 50%")
+        log.info("PWM", "PWM2 配置成功: 信号频率 1000 Hz, 分频精度 100, 占空比 50%")
     else
-        log.info("PWM", "PWM4 配置失败")
+        log.info("PWM", "PWM2 配置失败")
     end
 
     -- 启动 PWM 输出
     local pwm_success = pwm.start(pwm_channel)
     if pwm_success then
-        log.info("PWM", "PWM4 启动成功")
+        log.info("PWM", "PWM2 启动成功")
     else
-        log.info("PWM", "PWM4 启动失败")
+        log.info("PWM", "PWM2 启动失败")
     end
 
     -- 持续输出 2 秒
@@ -121,9 +128,9 @@ local function task2_new_pwm()
     -- 动态调整占空比至 25%
     local setduty_success = pwm.setDuty(pwm_channel, 25)
     if setduty_success then
-        log.info("PWM", "PWM4 占空比更新为 25%")
+        log.info("PWM", "PWM2 占空比更新为 25%")
     else
-        log.info("PWM", "PWM4 占空比设置失败")
+        log.info("PWM", "PWM2 占空比设置失败")
     end
 
     -- 持续输出 2 秒
@@ -132,9 +139,9 @@ local function task2_new_pwm()
     -- 动态调整信号频率为 2000 Hz
     local setfreq_success = pwm.setFreq(pwm_channel, 2000)
     if setfreq_success then
-        log.info("PWM", "PWM4 频率更新为 2000 Hz")
+        log.info("PWM", "PWM2 频率更新为 2000 Hz")
     else
-        log.error("PWM", "PWM4 频率设置失败")
+        log.error("PWM", "PWM2 频率设置失败")
     end
 
     -- 持续输出 2 秒
@@ -143,9 +150,9 @@ local function task2_new_pwm()
     -- 停止 PWM 输出
     local pwm_success = pwm.stop(pwm_channel)
     if pwm_success then
-        log.info("PWM", "PWM4 停止成功")
+        log.info("PWM", "PWM2 停止成功")
     else
-        log.info("PWM", "PWM4 停止失败")
+        log.info("PWM", "PWM2 停止失败")
     end
 
     log.info("PWM", "新风格 PWM 示例结束")

+ 2 - 2
module/Air8101/demo/pwm/readme.md

@@ -8,7 +8,7 @@
 
 注意事项:
 
-1、本 demo 演示所使用的是 Air8101 模组的 PWM4 通道(GPIO24,PIN33);
+1、本 demo 演示所使用的是 Air8101 模组的 PWM2 通道(GPIO24,PIN33);
 
 2、PWM 功能需要使用 V2xxx 版本固件,固件下载链接:https://docs.openluat.com/air8101/luatos/firmware/;
 
@@ -42,7 +42,7 @@ PWM 库目前有两套 API 风格:
 
 4、逻辑分析仪或者示波器,用于观察 PWM 输出的波形
 
-5、代码中选用的 PWM 通道是 Air8101 模组的 PWM4 通道(GPIO24,PIN33)
+5、代码中选用的 PWM 通道是 Air8101 模组的 PWM2 通道(GPIO24,PIN33)
 
 ## 演示软件环境