stm32工程和算法分享(7)--按键提示音,web前端开发流程图

34 阅读2分钟

CubeMX新建工程,选择芯片,配置时钟树,外部晶振以及调试接口。具体设置可参考使用cubemx配置stm32(二)__核心配置

然后配置GPIO口,电路图看到按键按下时接地为低电平,不按下应该为高电平,所以选择内部上拉

在这里插入图片描述

在这里插入图片描述

配置完成后生成代码

2.在main.c中添加代码,完成工程的编写


定义全局变量,和函数,在main函数的while中循环调用,两个函数通过一个全局变量 flg 联系起来

CubeMX生成的代码有“/* USER CODE BEGIN WHILE / ” “ / USER CODE END WHILE */”在BEGIN,END之间加入的代码不会在重新配置时被覆盖掉

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

代码如下:

uint8_t flg=0;

static void KEY_Task(void);

static void BEEP_Task(void);

void KEY_Task(void)

{

static uint32_t count=0;

static uint8_t step=0;

switch(step)

{

case 0:

{

if(HAL_GPIO_ReadPin(KEY_GPIO_Port,KEY_Pin)==GPIO_PIN_RESET)

{

count++;

if(count>=10000)

{

count=0;

step=1;

}

}

else

{

count=0;

}

}

break;

case 1:

{

if(HAL_GPIO_ReadPin(KEY_GPIO_Port,KEY_Pin)==GPIO_PIN_SET)

{

flg=1;

step=0;

}

}

break;

}

}

void BEEP_Task(void)

{

static uint32_t count=0;

static uint8_t step=0;

if(flg)

{

switch(step)

{

case 0:

{

最后

基础知识是前端一面必问的,如果你在基础知识这一块翻车了,就算你框架玩的再6,webpack、git、node学习的再好也无济于事,因为对方就不会再给你展示的机会,千万不要因为基础错过了自己心怡的公司。前端的基础知识杂且多,并不是理解就ok了,有些是真的要去记。当然了我们是牛x的前端工程师,每天像背英语单词一样去背知识点就没必要了,只要平时工作中多注意总结,面试前端刷下题目就可以了。

开源分享:docs.qq.com/doc/DSmRnRG…