AI辅助Stm32l031项目开发调试板子之按键跟adc

AI辅助Stm32l031项目开发调试板子之按键跟adc

在上一篇中文章中,AI一顿输出了一堆代码,还报错了,本篇文章将对其进行调试。

一、按键调试

查看按键相关代码

c 复制代码
  /*Configure GPIO pin : KEY_Pin */
  GPIO_InitStruct.Pin = KEY_Pin;
  GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING;
  GPIO_InitStruct.Pull = GPIO_PULLUP;
  HAL_GPIO_Init(KEY_GPIO_Port, &GPIO_InitStruct);

  /* EXTI interrupt init*/
  HAL_NVIC_SetPriority(EXTI4_15_IRQn, 3, 0);
  HAL_NVIC_EnableIRQ(EXTI4_15_IRQn);
  
  /**
 * @brief 按键中断回调函数
 * @param GPIO_Pin 中断引脚
 */
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
    if (GPIO_Pin == KEY_Pin) {
        // 消抖
        HAL_Delay(10);
        if (HAL_GPIO_ReadPin(KEY_GPIO_Port, KEY_Pin) == GPIO_PIN_RESET) {
            if (g_system_status == SYSTEM_SLEEP) {
                // 从待机模式唤醒
                LowPower_Exit();
                HAL_GPIO_WritePin(GREEN_LED1_GPIO_Port, GREEN_LED1_Pin, LED_ON);
            } else {
                // 工作模式下重新测光
                g_meter_flag = 1;
                g_last_operation_time = HAL_GetTick();
            }
        }
    }
}

我这里的按键模式简单使用exit中断功能,在中断回调里面使用简单的hal_delay();来进行消抖,这里消抖有个地方需要注意,就是优先级的问题。

因为系统比较简单,我这直接更改优先级为最高了,毕竟全局只是用到了这个中断,完全不用担心影响别的中断啥事,要是有多个中断时,需要考虑中断优先级排序问题,具体场景具体分析。

二、调试传感器和adc

经过一顿折腾,传感器的数据和adc的数据也正常获取了

调试这类外设时,就是按照对应的操作手册来编程实现,需要耐心,方法,然后实操就调出来了,要有一定的调试方向,这个需要在平时的项目中进行积累,按照自己的方法和套路来就行。

三、综合功能

略,整机的综合功能,将在下一篇博文中进行调通,并给出整个工程的完整代码,下篇见。

相关推荐
糖糖单片机设计32 分钟前
基于单片机的热水器节能控制系统
单片机·嵌入式硬件
数字新视界1 小时前
数字孪生技术赋能智能化转型与创新实践
嵌入式硬件·物联网·系统架构·机房管理·动力与环境监控系统
HQB20262 小时前
屹晶微电子 EG1195|10‑120V/10A+ 外置 MOS 异步降压控制器|ESOP‑8|电动车转换器 / 快充 / 工业电源
嵌入式硬件·硬件工程
不悔哥3 小时前
开源LineageOS:旧手机刷上开源系统
嵌入式硬件·智能手机·开源
服务器硬件项目经理3 小时前
《超节点修仙录》· 第一卷·炼气期【第04话】 超节点 vs 普通服务器——不就是多插了几张卡吗?
运维·服务器·人工智能·嵌入式硬件·深度学习·机器学习
一次调频AGCAVC4 小时前
一次调频系统控制柜的组成及一次调频装置主机功能详述
人工智能·嵌入式硬件
金色光环4 小时前
【DSP学习】C2000_PWM中断程序_笔记
笔记·单片机·学习
智购科技智能售货柜4 小时前
顾客已经关门,视觉售货柜还在处理旧画面:延迟积压怎么查?~YH
python·单片机·嵌入式硬件·物联网·eclipse
糖糖单片机设计4 小时前
基于 STM32 的智能电蚊香控制系统
stm32·单片机·嵌入式硬件
zhangrelay6 小时前
Arduino-MEGA-ESP单片机理论课笔记-01入门-02硬件-03开发环境-2026
笔记·单片机·嵌入式硬件·学习·机器人