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

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

















评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值