备战蓝桥杯嵌入式(二)常用代码书写(第一篇)

(二)常用代码书写(第一篇)

在蓝桥杯比赛里面,有很多的基本代码其实是通用的,在这里小编将会一一告诉大家哪一些代码一定会在蓝桥杯比赛中出现的;

1:按键代码(下拉输入)
按键这一个代码可以说是STM32里面用的比较多的代码了,而蓝桥杯用到的正是stm32的芯片,所以按键代码一定要会写。
那么按键代码怎么写呢?首先我们要了解蓝桥杯4个按键的I/O口;蓝桥杯的开发板资料可以在他给的加密文件里面找得到;备战蓝桥杯嵌入式(二)常用代码书写(第一篇)
可以看出按键B1;B2;B3;B4;对应的引脚PA0 ; PA8 ; PB1 ; PB2 ;蓝桥杯开发板这四个按键都是低电平有效的,所以我们写代码的时候一定要注意到这一点;首先是我们要写的是按键的初始化;按键的初始化需要对GPIO时钟和按键引脚使能;怎么写初始代码呢,其实可以在蓝桥杯给的IIC例码里面找到;
备战蓝桥杯嵌入式(二)常用代码书写(第一篇)
我们只需要吧这几行代码复制粘贴到我们的按键初始化函数里面,再把I/O口引脚改成我们想要的就可以了;那么GPIO时钟怎么使能呢?很简单,在蓝桥杯给的LCD例程里面,第702行代码找到
void LCD_CtrlLinesConfig(void)
这一条函数,在里面就会看到有一条
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC , ENABLE)
这样的代码,然后复制过去,再把GPIOC 改成GPIOA 即可;备战蓝桥杯嵌入式(二)常用代码书写(第一篇)
修改完成后就是这样的函数了;如图:
备战蓝桥杯嵌入式(二)常用代码书写(第一篇)
写完按键的初始化,就开始写按键功能的函数了;首先我们给按键做一个宏定义,在stm32f10x_gpio.h找到一条叫uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin) 的函数,把他复制到 i2c.h里面,定义成
#define RB1 PIO_ReadInputDataBit(GPIOA, GPIO_Pin_0);
然后其他的按键也同样定义;这样方便我们读取按键引脚的电位;
备战蓝桥杯嵌入式(二)常用代码书写(第一篇)
写完宏定义以后,就可以写按下按键的代码了,首先我们要先读取按键的电位;如果是低电平;延时10毫秒,再检测一下电位,这样子做是为了消除按键抖动;然后确认是人为按键了,就可以在接下来的函数里面写相应的操作了,在这里小编就给大家看一下小编是怎么写的按下按键代码的;
备战蓝桥杯嵌入式(二)常用代码书写(第一篇)
其他的按键只需要像前面一样用if语句就可以写完了;到这一步按键的代码就写完啦!接下来就是写其他功能的代码了。

2:LED代码(推挽输出)
LED的代码的编写其实和按键大致相同;也是先找到LED的引脚口;查阅资料我们可以知道LED的引脚如下图:
备战蓝桥杯嵌入式(二)常用代码书写(第一篇)
既然知道了引脚,那么配置起来就和按键差不多了,小编这里就不和大家啰嗦了,就给大家看看配置后的代码吧;由于LED的数量太多了,小编这里就用LEDALL来进行替代了,当然小编在之前已经将LED的所有引脚都进行了宏定义;所以在这里才可以这样使用;值得注意的是,LED引脚是推挽输出,所以这里的GPIO_Mode是GPIO_Mode_Out_PP;
备战蓝桥杯嵌入式(二)常用代码书写(第一篇)
备战蓝桥杯嵌入式(二)常用代码书写(第一篇)
想要打开LED;只需要调用GPIO_SetBits()就行;关闭只要调用GPIO_ResetBits()即可;
备战蓝桥杯嵌入式(二)常用代码书写(第一篇)
这样,LED的配置湖和功能就写完啦。当然蓝桥杯常用的代码不止这一些,在下一章小编会把UART;ADC;IIC写EPPROM的代码以及配置一一告诉大家。希望给大家备战蓝桥杯带来方便和用处。