星闪开发之buttondemo烧录后无效果思路

前言(若无空闲时间请直接跳转至文末查看结论)

此前我撰写了几篇有关星闪技术的入门文章,最近收到几位读者私信反馈——烧录buttondemo后毫无反应。本文旨在解决这一常见问题(本文适合新手阅读,若赶时间可直接滑至最后看解决方案)。

相关基础教程请参考:星闪开发入门级教程之安装编译器与小项目烧录

星闪开发之buttondemo烧录后无效果思路### 一、常规排查思路

在过往从事前后端开发及自然语言处理项目时,遇到异常通常会从以下四个方面入手:

代码逻辑是否存在漏洞 配置项是否正确 查阅官方API文档 研读第三方库或系统源码(如Android平台)

二、配置流程说明

将Demo代码放入peripheral目录下之后,需完成以下两步配置:

1. 修改 peripheral 目录下的 Kconfig 文件,新增如下内容:

config SAMPLE_SUPPORT_BUTTONDEMO    bool    prompt "Support BUTTONDEMO Sample."    default n    depends on ENABLE_PERIPHERAL_SAMPLE    help        This option means support BUTTONDEMO Sample.

2. 在 peripheral 目录下的 CMakeLists.txt 文件中添加如下语句:

if(DEFINED CONFIG_SAMPLE_SUPPORT_BUTTONDEMO)    add_subdirectory_if_exist(buttondemo)endif()

三、代码简要分析

1. 头文件引入与宏定义部分

#include "pinctrl.h"#include "common_def.h"#include "soc_osal.h"#include "gpio.h"#include "hal_gpio.h"#include "watchdog.h"#include "app_init.h"#define BSP_LED 7      // RED#define BUTTON_GPIO 12 // 按键#define BUTTON_TASK_STACK_SIZE 0x1000#define BUTTON_TASK_PRIO 17

头文件说明:涵盖了引脚控制、通用常量、操作系统抽象层、GPIO驱动、看门狗模块和应用初始化等核心组件。

宏定义解释:设定了LED灯和按键对应的GPIO编号,以及任务堆栈大小与优先级。

2. 全局变量声明

static int g_ledState = 0;

作用:用于记录LED当前状态(亮或灭)。

3. 按键中断回调函数

static void gpio_callback_func(pin_t pin, uintptr_t param){    UNUSED(pin);    UNUSED(param);    g_ledState = !g_ledState;    printf("Button pressed.rn");}

功能描述:按键触发时执行此函数,翻转LED状态并打印日志。

4. 主任务函数实现

static void *button_task(const char *arg){    unused(arg);    uapi_pin_set_mode(BSP_LED, HAL_PIO_FUNC_GPIO);    uapi_gpio_set_dir(BSP_LED, GPIO_DIRECTION_OUTPUT);    uapi_gpio_set_val(BSP_LED, GPIO_LEVEL_LOW);    uapi_pin_set_mode(BUTTON_GPIO, HAL_PIO_FUNC_GPIO);    gpio_select_core(BUTTON_GPIO, CORES_APPS_CORE);    uapi_gpio_set_dir(BUTTON_GPIO, GPIO_DIRECTION_INPUT);    errcode_t ret = uapi_gpio_register_isr_func(BUTTON_GPIO, GPIO_INTERRUPT_FALLING_EDGE, gpio_callback_func);    if (ret != 0) {        uapi_gpio_unregister_isr_func(BUTTON_GPIO);    }    while (1) {        uapi_watchdog_kick();        if (g_ledState) {            uapi_gpio_set_val(BSP_LED, GPIO_LEVEL_HIGH);        } else {            uapi_gpio_set_val(BSP_LED, GPIO_LEVEL_LOW);        }    }    return NULL;}

初始化阶段:

闪念贝壳 闪念贝壳

闪念贝壳是一款AI 驱动的智能语音笔记,随时随地用语音记录你的每一个想法。

闪念贝壳 53 查看详情 闪念贝壳 设置LED为输出模式,默认关闭;设置按键为输入模式,并指定由应用核心处理中断;注册中断回调函数,采用下降沿触发方式。

主循环逻辑:

定期喂狗防止系统复位;根据全局变量 g_ledState 控制LED亮灭状态。

5. 创建任务线程函数

static void button_entry(void){    uint32_t ret;    osal_task *taskid;    osal_kthread_lock();    taskid = osal_kthread_create((osal_kthread_handler)button_task, NULL, "led_task", BUTTON_TASK_STACK_SIZE);    ret = osal_kthread_set_priority(taskid, BUTTON_TASK_PRIO);    if (ret != OSAL_SUCCESS) {        printf("create task1 failed .n");    }    osal_kthread_unlock();}

流程说明:

锁定内核以确保线程安全;创建名为“led_task”的线程;设置优先级;解锁后允许调度执行。

6. 应用程序入口点

app_run(button_entry);

启动整个程序,调用button_entry函数创建按键监听任务。

7. 整体运行流程总结

系统通过app_run启动;button_entry创建任务线程;线程中完成硬件初始化与中断注册;按键按下时触发中断回调,改变LED状态;主循环持续更新LED输出并喂狗保活。

由于用户反馈代码来自官方仓库,基本排除逻辑错误可能,因此下一步应聚焦于硬件资料核对。

四、最终解决方案

查阅官方硬件手册发现:

星闪开发之buttondemo烧录后无效果思路
原代码中设置的按键GPIO编号为12,但实际开发板按键连接的是GPIO 14!

修改宏定义如下:

#define BUTTON_GPIO 14 // 按键

重新编译并烧录即可正常运行!

总结

该示例实现了经典的按键控制LED功能,结合看门狗机制提升系统稳定性,是嵌入式GPIO编程中的典型应用案例。遇到类似问题时,建议优先确认硬件引脚定义是否匹配开发板实际布局。

以上就是星闪开发之buttondemo烧录后无效果思路的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/397613.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月6日 18:09:45
下一篇 2025年11月6日 18:14:03

相关推荐

  • 什么是DEGEN?DEGEN价格预测:2025、2026-2030年

    目录 什么是DEGEN (DEGEN)?Degen如何运作当前市场状况影响DEGEN 价格的因素历史价格走势市值与成交量2025年展望Degen 值得买入吗?DEGEN 价格预测(2025-2030)2025 年DEGEN 价格预测2026 年DEGEN 价格预测2030 年DEGEN 价格预测未来…

    好文分享 2025年12月9日
    000
  • OKB销毁后价格飙涨,涨势会持续多久?OKB币会突破300美元吗?

    OKB因其常规销毁计划的执行而引发市场广泛关注,其价格也随之出现显著上扬。这一现象并非偶然,而是其内在价值逻辑和通缩模型的直接体现。销毁机制通过从流通中永久移除一部分代币,有效减少了市场上的总供应量,当市场需求保持稳定或增长时,这种供需关系的变化往往会直接推动资产价格的提升。 欧易官网注册地址: 欧…

    2025年12月9日
    000
  • 什么是Bio Protocol? 值得关注的五大DAO介绍

    目录 什么是Bio Protocol?Bio Protocol 上的BioAgents 是什么?Bio Protocol 如何运作?Bio Protocol 协议中值得关注的五大DAO1. VitaDAO – 长寿研究2. CerebrumDAO – 大脑健康与神经科学3. …

    2025年12月9日 好文分享
    000
  • 大白话解释一下什么是稳定币

    稳定币是价格锚定美元等资产的数字货币,旨在解决比特币等币种价格波动大的问题,主要通过法币抵押(如USDT、USDC)、加密资产超额抵押(如DAI)和算法调节三种机制维持稳定,成为交易所内的通用交易媒介和资产避险工具。 大白话来说,稳定币就是一种价格非常稳定的数字货币。它的目标就是让自己的价格尽量钉死…

    2025年12月9日
    000
  • tokens翻译成中文 tokens怎么读

    代币(Tokens)是基于现有区块链发行的数字凭证,依赖于以太坊等主链运行,不具备独立网络。与拥有自主区块链的原生币(如BTC、ETH)不同,代币如同运行在操作系统上的应用,依附于底层网络进行交易验证。 Tokens在中文里通常被翻译为代币,也有一个更偏向于技术和理论的翻译叫作通证。它的英文读音可以…

    2025年12月9日
    000
  • 什么是tokens?tokens怎么计算?

    Tokens是AI模型处理文本的基本单位,可为单词、字或标点;英文中1词约1-2个tokens,中文1字约1-3个tokens,因分词方式不同导致中英文token数量差异。 Tokens可以被理解为人工智能模型处理文本时的基本单位。模型在理解和生成语言时,并不是直接处理单词或字符,而是先将文本分解成…

    2025年12月9日
    000
  • Hyperliquid合约交易所 11人撑起年入11亿美元的去中心化币安

    目录 Hyperliquid究竟是什么?一个“看似去中心化的中心化交易所”为何能迅速超越dYdX等传统永续合约平台? 最新资讯显示,根据 DeFiLlama 的统计数据,Hyperliquid 协议在过去30天内产生的收入约为9563万美元,年化收入预估高达11.47亿美元。项目团队仅由11名成员组…

    2025年12月9日
    000
  • 什么是Lightchain AI?优缺点、未来发展介绍

    什么是Lightchain AI? Lightchain AI 是一项颠覆性技术,将区块链的去中心化架构与前沿人工智能能力深度融合,打造出性能更强、更安全的系统。与传统集中式AI不同,Lightchain AI 支持去中心化AI应用在可扩展且安全的节点网络中运行。 通过将模型训练、预测分析和复杂计算…

    2025年12月9日
    000
  • 比特币网站哪个好 全球比特币网站2025排名

    随着数字货币市场的持续发展,选择一个安全可靠、功能全面的比特币交易网站是每位投资者的首要任务。本文综合评估了全球主流平台的交易深度、安全性、用户体验及产品生态,为您提供一份2025年全球比特币网站的权威排名,旨在帮助您快速筛选出最适合您交易需求的平台。 全球比特币网站2025年综合排名 1. 币安 …

    2025年12月9日
    000
  • 最值钱的虚拟货币排名top10推荐(2025最新版)

    比特币居首,以太坊、索拉纳、BNB、XRP、USDT、ADA、DOGE、SHIB、AVAX紧随其后,基于技术、生态与市场共识综合排名。 随着数字资产市场的不断成熟,虚拟货币的价值格局也在持续演变。本文旨在为投资者和爱好者梳理出2025年最具价值和潜力的十大虚拟货币,通过分析其技术基础、生态系统发展和…

    2025年12月9日
    000
  • 2025最值钱的虚拟货币 虚拟货币排名top10

    随着数字资产市场的不断成熟,投资者对未来潜力巨大的虚拟货币愈发关注。本文将为您盘点并分析在2025年最具有价值潜力的十大虚拟货币,从技术基础、生态系统和市场共识等多个维度,为您揭示未来加密世界的明星项目。 2025年虚拟货币主流交易所: 币安官网直达:  欧易官网直达:  火币官网直达:  2025…

    2025年12月9日
    000
  • 比特币现金(BCH)是什么?BCH价格预测2025, 2026-2030年

    目录 比特币现金是什么?项目概述类别和用例市场分析价格走势和技术洞察比特币现金价格预测2025-2030202520262027202820292030结论常见问题‍ 比特币现金(bch)于2017年作为比特币(btc)的硬分叉而创建,旨在解决比特币最大的挑战之一:可扩展性。虽然比特币已将自己确立为…

    2025年12月9日
    000
  • 加密货币量化交易是什么意思?哪些交易所自带量化交易呢?

    目录 什么是量化交易?量化机器人有什么用?量化交易策略分类量化机器人的效益量化交易的优缺点独立量化交易工具交易所自带量化工具如何选择适合的工具?比较几款我用过的加密货币量化交易软件优劣!(网友测评)风险提示 加密货币量化交易是什么意思?支持加密货币量化交易所有哪些?加密货币量化交易机器人是什么? 加…

    2025年12月9日
    000
  • Bitget交易所现货网格交易操作教程(web/app版)

    目录 Bitget现货网格是什么?如何在WEB上创建现货网格交易策略?AI 策略手动创建查看网格交易表现如何在APP上创建现货网格交易策略?AI 策略手动创建查看网格交易表现构建网格:从假设到执行监控与调整您的现货网格机器人:从观察走向优化关于 Bitget 现货网格交易的常见问题问题1:什么是现货…

    2025年12月9日 好文分享
    000
  • Definitive(EDGE)币是什么?值得投资吗?EDGE价格分析及未来展望

    目录 EDGE 币最新新闻和价格动态Definitive(EDGE)是什么?Definitive 开发团队和融资Definitive 有何独特之处?Definitive 的运作原理EDGE币是什么?EDGE 代币经济学EDGE 价格走势分析Definitive(EDGE)未来展望Definitive…

    2025年12月9日 好文分享
    000
  • 锚定成交量加权平均价格(Anchored VWAP)指标是什么?

    目录 锚定成交量加权平均价格(Anchored VWAP)指标是什么?锚定成交量加权平均价格(Anchored VWAP)指标的起源与发展锚定成交量加权平均价格(Anchored VWAP)指标的工作原理如何使用锚定成交量加权平均价格(Anchored VWAP)进行交易?锚定成交量加权平均价格(A…

    2025年12月9日 好文分享
    000
  • BNB币续创历史新高,突破881美元,未来走势如何?

    目录 BNB当前市场概况核心技术指标说明了什么BNB未来价格走势如何BNB价格预测2025-20502025年BNB价格预测2026年BNB价格预测2030年BNB价格预测2040年BNB价格预测2050年BNB价格预测市场动态和底层逻辑需要关注的关键市场驱动因素提示和操作建议风险提示 近期表现亮眼…

    2025年12月9日
    000
  • 什么是收益耕作(Yield Farming)?如何运作?一文了解收益耕作

    目录 什么是收益耕作收益耕作如何运作基本机制关键组件顶级收益耕作平台和协议高级收益耕作策略集中流动性耕作收益聚合器策略杠杆收益耕作收益耕作中的风险管理和安全考虑如何计算收益耕作的收益谁可能对收益耕作感兴趣?收益耕作的风险收益耕作的好处收益耕作的逐步指南要点结论 去中心化金融(defi)彻底改变了人们…

    2025年12月9日
    000
  • 币圈以上新速度快而闻名的交易所有哪些

    MEXC和Gate.io上新速度最快,币安、火币HTX、KuCoin综合实力强且上新较快,Bybit、Bitget各有特色;选择需权衡速度、安全、流动性与风险。 币圈以上新速度快而闻名的交易所有哪些 在加密货币领域,交易所上线新代币的速度是衡量其市场竞争力的关键指标之一。快速上新能为投资者提供更早的…

    2025年12月9日
    000
  • 币安下载了怎么打不开?原因分析与全面解决指南

    ‍ 一、最常见原因:网络连接与设备限制 网络问题:币安平台的服务器在中国大陆地区受到访问限制,使用本地运营商(如移动、联通、电信)的网络通常无法建立有效连接。这会导致App打开后卡在启动页、提示“网络异常”或直接闪退,是用户无法使用App的首要因素。 设备地区/语言设置:若手机系统语言设为中文(简体…

    2025年12月9日
    000

发表回复

登录后才能评论
关注微信