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的数据也正常获取了

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

三、综合功能

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

相关推荐
EatFan30 分钟前
全栈自造 Status Deck(四):硬件终于到了,从点亮屏幕到跑通第一个 Demo
单片机·物联网·esp32
sunoo-2291 小时前
【嵌入式裸机开发Day04】i.MX6ULL 蜂鸣器驱动详解:从引脚地址查找到代码实现全流程
arm开发·单片机·嵌入式硬件·学习·串口·裸机
Brilliantwxx2 小时前
【STM32】 SPI阻塞式通信与HAL源码 (源码分析)
stm32·单片机·嵌入式硬件
Doraemomo2 小时前
IMX6ULL裸机开发——PWM
arm开发·嵌入式硬件·imx6ull
老当益壮梁奶奶3 小时前
ARM汇编学习笔记(五):从按键轮询到 GIC 中断控制器(ARM Cortex-A7 )
arm开发·笔记·单片机·嵌入式硬件
WWJA王文举3 小时前
Bootloader、App 和升级分区之间是什么关系?
stm32·freertos·嵌入式开发·在线升级
西城微科方案开发4 小时前
基于SIC8F0535芯片的红外额温枪开发方案
单片机·嵌入式硬件
LCG元4 小时前
STM32F103 NTC 热敏电阻测温实战:分压网络设计、Steinhart-Hart 标定与 ADC 采样优化实测
stm32·单片机·嵌入式硬件
M78佐菲4 小时前
ARM学习笔记(五)
linux·arm开发·笔记·嵌入式硬件·学习
恒锐丰科技林技术员5 小时前
EG2184 半桥栅极驱动芯片详解:高压半桥电路的性价比之选
经验分享·嵌入式硬件·硬件工程