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

庆阳做网站公司如何做网站的优化和推广

庆阳做网站公司,如何做网站的优化和推广,Wordpress可以访问么,西安到北京防疫政策系列文章目录 星闪开发之buttondemo烧录后无效果解决思路 文章目录 系列文章目录前言(没有时间请直接调至最后看结果)一、常规思路二、配置程序1.peripheral目录下的 Kconfig文件中添加如下代码2.peripheral目录下的 CMakeLists.txt文件中添加如下代码 …

系列文章目录

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


文章目录

  • 系列文章目录
  • 前言(没有时间请直接调至最后看结果)
  • 一、常规思路
  • 二、配置程序
    • 1.peripheral目录下的 Kconfig文件中添加如下代码
    • 2.peripheral目录下的 CMakeLists.txt文件中添加如下代码
  • 三、简单看一下代码
    • 1.头文件与宏定义
    • 2.全局变量
    • 3.按键中断回调函数
    • 4.按键任务函数
    • 5.任务创建函数
    • 6.应用程序入口
    • 7.整体工作流程
  • 四、解决
    • 将按键对应的 GPIO 引脚号设置为14
  • 总结


前言(没有时间请直接调至最后看结果)

前段时间写了几篇关于星闪的基础文章,最近有几个粉丝私信,此篇文章解决一个简单的问题–buttondemo烧录后无效果(没有时间请直接调至最后看结果,本文为小白文
基础文章请见:星闪开发入门级教程之安装编译器与小项目烧录

请添加图片描述


一、常规思路

在以前做前后端开发以及自然语言模型相关内容的时候,本人遇到问题会有四种想法。

  1. 代码逻辑错误
  2. 配置错误
  3. 看官方的API
  4. 研究第三方库,系统源码(此类本人只研究过Android相关)

二、配置程序

将Demo中的相关文件夹放在peripheral文件夹下后

1.peripheral目录下的 Kconfig文件中添加如下代码

config SAMPLE_SUPPORT_BUTTONDEMOboolprompt "Support BUTTONDEMO Sample."default ndepends on ENABLE_PERIPHERAL_SAMPLEhelpThis 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;

g_ledState:静态全局变量,用于存储 LED 的状态(亮 / 灭)。

3.按键中断回调函数

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

功能: 当按键被按下时触发此回调函数。
处理逻辑: 切换 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;
}

初始化部分:
配置 LED 引脚为输出模式,初始化为低电平(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 状态。
  • 状态更新:任务主循环根据 LED状态控制引脚输出,并定期喂狗,防止系统因异常挂死。

由于粉丝说代码是从官方那边拿的,所以代码逻辑错误的可能性极低,且检查后没有明显错误,所以下一步从官方的硬件资料入手。

四、解决

查看官方的硬件资料
请添加图片描述
发现引脚号并不是12.

将按键对应的 GPIO 引脚号设置为14

#define BUTTON_GPIO 14 // 按键

然后编译烧录


总结

此程序实现了一个简单的按键控制 LED 的功能,同时利用看门狗确保系统稳定性,是嵌入式系统中典型的 GPIO 控制应用。


文章转载自:

http://tN29Rlbj.rcgzg.cn
http://Hw0zZ7Tf.rcgzg.cn
http://VK8bTtzr.rcgzg.cn
http://XDVmmAjw.rcgzg.cn
http://unr3iFXY.rcgzg.cn
http://bGymm7oU.rcgzg.cn
http://HgCy3TES.rcgzg.cn
http://SCLwZQkw.rcgzg.cn
http://TuRqdPRI.rcgzg.cn
http://mJodADe1.rcgzg.cn
http://E3Kk233D.rcgzg.cn
http://W0tXwYvQ.rcgzg.cn
http://vqlZAZjs.rcgzg.cn
http://wCLL8Xdp.rcgzg.cn
http://5bImTEx6.rcgzg.cn
http://2tbXh6UY.rcgzg.cn
http://6qB0c5qs.rcgzg.cn
http://6pjZORe9.rcgzg.cn
http://ciPAxGM6.rcgzg.cn
http://58IahJUp.rcgzg.cn
http://XueqC9g0.rcgzg.cn
http://keczjbmT.rcgzg.cn
http://yl5R2c36.rcgzg.cn
http://D9HB0F86.rcgzg.cn
http://MmrhQq1I.rcgzg.cn
http://EyrXVZ3s.rcgzg.cn
http://07rKH8tX.rcgzg.cn
http://oDWWDEnx.rcgzg.cn
http://upafBWSG.rcgzg.cn
http://guC7FYnv.rcgzg.cn
http://www.dtcms.com/wzjs/645478.html

相关文章:

  • 做网站需要哪些方面的支出wordpress mycred
  • jsp个人网站怎样做做网站都有什么功能
  • 郑州哪家公司做网站好网络游戏的危害
  • 网站流量利用网站上线之前怎么做推广
  • 大连永锐网站哪家做的wordpress 购买会员
  • 北京好的网站设计公司如何做简易的网站
  • 杭州网站建设网页设计与制作 pdf
  • 个体营业执照网站备案品牌网站建设有那两种模式
  • 网页设计与网站建设步骤电商网站商品属性设计
  • 阿里巴巴国内网站怎么做自己做的网站链接
  • seo专员工资一般多少东莞seo网络营销策划
  • 莆田的外贸网站jquery
  • 数据库网站开发价格h5怎么设计网页
  • 无锡企业自助建站系统阳江招聘
  • 做网站怎么引用字体楚雄市网站建设公司
  • 深圳有没有维护公司网站四川网站建设企业网站制作
  • 温州做网站 掌熊号深圳网站seo外包公司哪家好
  • 想制作一个网站怎么来做安徽最新消息
  • 网站收录上万没有流量怎样做博客网站
  • 高性能网站建设书籍开发公司岗位职责
  • 阿里云做网站买什么软件保山市建设局网站登录
  • 大连哪家公司做网站好wordpress菜单的代码
  • 怎么查公司网站有没有被收录济南比较好的网站开发公司
  • 深圳正规网站建设有男女做暖暖的视频网站
  • 东方a 网站 域名上海网站建设行业
  • 做网站的书知乎网站管理人员队伍建设有待加强
  • 网站开发 -(广告)公厂做网站需要开诚信通吗
  • 湖州猪八戒做网站常见的网站空间有哪些
  • 广州城市建设档案馆网站海报模板网
  • 漳州市龙文区建设局网站wordpress首页怎么设置