当前位置: 首页 > news >正文

【移远CAT1模组】005.第一份代码--LED闪烁

█ 【移远CAT1模组】005.第一份代码–LED闪烁

代码结构

在ql-sdk\ql-application\threadx\interface中创建新工程 app_test

1.创建 my_app.c

#include"ql_func.h"#include"ql_application.h"#include"ql_rtos.h"#include"ql_log.h"#include"ql_gpio.h"#definePA_GPIO_PINGPIO_PIN_NO_3staticvoidapp1_task1(void*argv){intret;intled_on=0;ql_log_mask_set(QL_LOG_APP_MASK,QL_LOG_PORT_UART|QL_LOG_PORT_USB);ql_app_log("APP start OK");ret=ql_gpio_init(GPIO_PIN_NO_124,PIN_DIRECTION_OUT,PIN_PULL_DISABLE,PIN_LEVEL_LOW);if(ret!=0){ql_app_log("GPIO124 init failed, ret=%d",ret);return;}while(1){led_on=!led_on;ql_gpio_set_level(GPIO_PIN_NO_124,led_on?PIN_LEVEL_HIGH:PIN_LEVEL_LOW);ql_app_log("LED %s",led_on?"ON":"OFF");ql_rtos_task_sleep_ms(5000);}}application_init(app1_task1,"app1_task1",8,2);

2.创建子目录/模块Makefile (复制 app\Makefile 文件)

SRC_FILES (Source Files):编译的源代码文件,生成对应的 .o 文件
#待编译的源文件 SRC_FILES+=\ my_app.c \
INC_DIRS (Include Directories):头文件的目录路径,告知编译器头文件位置
#指定头文件搜索目录:导入日志 INC_DIRS+=\.......-I${TOP_DIR}/interface/log/inc \

3.修改根目录 Makefile(ql-application\threadx\Makefile)

COMMPILE_DIRS:=\ interface/app_test \ interface/driver \

模块引脚号与软件 GPIO 编号的映射关系

USER灯控制引脚21对应的是GPIO_PIN_124

映射代码(ql-sdk\ql-kernel\threadx\init\build\obj\quec_board_cfg.ppp)

{"EC800M"},{{77,GPIO_PIN_4},{76,GPIO_PIN_5},{16,GPIO_PIN_6},{78,GPIO_PIN_7},{75,GPIO_PIN_10},{74,GPIO_PIN_11},{68,GPIO_PIN_12},{69,GPIO_PIN_13},{84,GPIO_PIN_14},{85,GPIO_PIN_15},{81,GPIO_PIN_20},{54,GPIO_PIN_21},{80,GPIO_PIN_22},{56,GPIO_PIN_23},{55,GPIO_PIN_24},{57,GPIO_PIN_25},{58,GPIO_PIN_26},{38,GPIO_PIN_29},{39,GPIO_PIN_30},{49,GPIO_PIN_32},{21,GPIO_PIN_124},{87,GPIO_PIN_0},{86,GPIO_PIN_1},{28,GPIO_PIN_2},{29,GPIO_PIN_3},{83,GPIO_PIN_8},{82,GPIO_PIN_9},{30,GPIO_PIN_16},{31,GPIO_PIN_17},{33,GPIO_PIN_18},{32,GPIO_PIN_19},{79,GPIO_PIN_69},{25,GPIO_PIN_70},{17,GPIO_PIN_51},{18,GPIO_PIN_52},{23,GPIO_PIN_53},{22,GPIO_PIN_54},{20,GPIO_PIN_31},{19,GPIO_PIN_27},{105,GPIO_PIN_79},{104,GPIO_PIN_80},{53,GPIO_PIN_33},{52,GPIO_PIN_34},{51,GPIO_PIN_35},{50,GPIO_PIN_36},{67,GPIO_PIN_49},{66,GPIO_PIN_50},{13,GPIO_PIN_81},{11,GPIO_PIN_82},{12,GPIO_PIN_83},{62,GPIO_PIN_45},{64,GPIO_PIN_46},{63,GPIO_PIN_47},}
http://www.jsqmd.com/news/1398393/

相关文章:

  • 根治 MSVCP140.dll 缺失:Visual C++ 运行库一键安装全攻略
  • 2026年金华市漏水检测行业优质服务商 - 全域品牌推荐
  • UE Viewer 深度解析:虚幻引擎 1-4 资源查看与导出的完整实战指南
  • 向量召回变差:先查数据、切分和过滤条件
  • 把画图变成写代码:Draw.io Mermaid插件快速上手指南
  • Scrapy Pipeline 保存 MySQL 完整代码
  • 基于STM32的ThreadX+NetX Duo物联网终端
  • Bebas Neue 字体完全指南:从零上手这款免费开源标题字体
  • 蓝奏云直链解析API部署教程:一个PHP文件,三个参数,十秒拿到下载地址
  • 微博备份完整指南:如何用 Speechless 扩展把任意公开微博导出为 PDF
  • 彻底解决xapofx1_5.dll加载失败:从DirectX原理到游戏运行库修复
  • 免费开源的图像浏览器,为什么比系统自带看图工具更全能?
  • 收藏备用!2026 昆明黄金回收常见问题汇总:“三免服务 + 四红线” 合规交易,金价流程、门店挑选,一篇讲透 - 日常前沿快讯
  • 【MYSQL】MYSQL学习的一大重点:MySQL连接池原理与分析简易网站数据流动是如何进行
  • AI 能否承接企业 HR 政策答疑工作?怎样防范薪酬涉密信息与越权访问风险?:允许启用 AI,务必前置身份认证并配置分级权限
  • 一次装齐 2005 到 2022 全系列 Visual C++ 运行库,跟 MSVCP140.dll 报错说再见
  • ThreadX+GUIX工业仪表界面开发实战
  • Windows下Anki LaTeX插件配置全攻略:从环境搭建到排错优化
  • Spring Cloud 微服务契约先行:为什么 Controller 建议要实现 Feign 接口?
  • 暗黑2存档编辑器d2s-editor:3步上手,不懂十六进制也能给角色换身神装
  • Switch注入零基础教程:3步用TegraRcmGUI完成RCM注入全流程
  • Linux磁盘空间排查:find、du、sort命令组合定位与清理大文件
  • 2026成都装修公司专业实力测评,业主选购避坑参考 - 推荐官
  • Model Builder——Gem200之Variable模块、Event模块、Report模块介绍
  • WebRTC全双工下语音Agent抢话问题深度解析与优化方案
  • NCM转MP3一个拖拽就完成:免费ncmdump让网易云下载的歌在任意设备播放
  • ARM架构KVM虚拟化支持现状分析
  • 30+套Obsidian模板,一劳永逸告别笔记碎片化:把卡片盒笔记系统一次装进你的笔记库
  • Sunshine游戏串流服务器部署全攻略:零成本把家用电脑升级成私人云游戏平台
  • 用 mathlib 把数学证明交给机器检查:3个场景带你入门形式化证明