既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新
#ifndef __KEY_H
#define __KEY_H
#include “main.h”
#include “stdbool.h”
struct keys
{
bool key_sta;
char jude_sta;
bool key_flog;
};
#endif /*__KEY_H*/
### 2.长按键(按压时间>70ms)
.c文件
#include “key_chang.h”
struct key_chang keys_chang[4]={0};
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
if(htim->Instance==TIM1)
{
keys_chang[0].key_chang_sta=HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_0);
keys_chang[1].key_chang_sta=HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_1);
keys_chang[2].key_chang_sta=HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_2);
keys_chang[3].key_chang_sta=HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0);
for(char i=0;i<4;i++)
{
switch (keys_chang[i].jude_sta)
{
case 0:
{
if(keys_chang[i].key_chang_sta==0)
{
keys_chang[i].jude_sta=1;
keys_chang[i].key_chang_time=0;
}
}
break;
case 1:
{
if(keys_chang[i].key_chang_sta==0)
{
keys_chang[i].jude_sta=2;
}
else
{
keys_chang[i].jude_sta=0;
}
}
break;
case 2:
{
if(keys_chang[i].key_chang_sta==1)
{
keys_chang[i].jude_sta=0;
if(keys_chang[i].key_chang_time<70)
{
keys_chang[i].key_flog=1;
}
}
else
{
keys_chang[i].key_chang_time+&#