您的位置:首页 > 其它

STM32F072 Nucleo笔记2-利用STM32CuBeMX创建工程并用按键控制LED的亮灭

2015-01-19 10:33 288 查看

STM32F072 Nucleo学习笔记2-利用STM32CuBeMX创建工程并用按键控制LED的亮灭

本文例子用到:

1. STM32F072 Nucleo开发板



2. STM32CubeMX软件Version4.3.0



3. Keil MDK 软件Version5.12.0.0



下面开始讲解:

1. 打开STM32CuBeMX

2. 新建工程



3. 选择器件型号



4. 此例要利用按键控制led的亮灭,故首先需要知道按键和led对应的IO口。查看官方给的手册,可知按键对应PC13,LED对应PA5。

5. 将PC13(按键对应的IO口)设置为输入,将PA5(LED对应的IO口)设置为输出(单击对应的IO口可以设置IO口的工作模式)。如下图,



6. 其他设置默认(无需设置),比如系统时钟采用内部振荡器,为8MHz。

7. 生成项目。点击Project下的Generate Code,填写项目名称,设置项目的位置,以及目标工程,此处为用Keil MDK打开。最后点击OK,生成项目。



8. 另外,如何刚安装完STM32CubeMX软件,需要先下载一些库文件。点击Help---Install New Libraries,根据相应的型号下载相应的软件库。



9. 已经生成了Keil工程,接下来用Keil打开工程。



10. 接下来再看看代码。

1) 首先看看IO口的初始化函数



由于要将按键对应的IO口设置为上拉输入,故在此处需要修改一下上下拉模式,默认是没有上下拉,我们修改为上拉模式。将GPIO_NOPULL改成GPIO_PULLUP。上下拉模式的定义可以在stm32f0xx_hal_gpio.h中查看。修改结果如下图:



2) main函数里面是一些初始化函数,有兴趣的可以看看,初学者可以先不看。

11. 先看看控制GPIO的函数。查看stm32f0xx_hal_gpio.h文件,可以看到如下函数:



对于按键控制led的程序,只需知道三个函数就可以。

1) GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);

这个函数为读取GPIO的状态,第一个参数是哪一组GPIO,第二个参数是GPIO具体哪一个引脚,返回值为GPIO的状态。

2) void HAL_GPIO_WritePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, GPIO_PinStatePinState);

这个函数作用是将某一GPIO置一或者清零。第三个参数GPIO_PinState有GPIO_PIN_RESET与GPIO_PIN_SET两种。

3) void HAL_GPIO_TogglePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);

这个函数作用是反转某一GPIO

12. 现在就可以写按键控制LED的程序了。

程序如下:





只要将上述程序放入main函数里的while(1)里面就行。



HJL

2015.1.18
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: