本文转载自http://blog.csdn.net/charmingsun/article/details/50802267,本教程以点亮一盏LED灯为目的为大家演示用STM32CubeMX、Keil、ST-Link开发STM32程序的一般方法。
一、学习前的准备工作
硬件:一块STM32开发板,一个ST-Link;(我使用的开发板是NUCLEO-F411RE)
软件:装好ST-Link的驱动程序,装好STM32CubeMX,装好Keil;
文档:开发板的原理图、芯片的参考手册和HAL驱动说明书。
附:STM32F4xx HAL驱动说明书
二、创建一个新的STM32CubeMX工程
打开STM32CubeMX,然后单击New Project:
选择Series(系列)、Lines(系列)、Package(封装),然后选中自己MCU的型号,点击OK:(我的MCU是STM32F411RE,64引脚LQFP封装)
至此一个STM32CubeMX工程已经建立好:
三、配置对应引脚,然后生成Keil工程
打开开发板原理图,查看LED灯对应的引脚:(如图所示,让PA5引脚输出高电平即可点亮LED)
点击Pinout,然后单击LED灯对应的引脚,选择GPIO_Output模式:(将PA5设置成通用输入输出口的输出模式,具体请参考Reference manual中的GPIO introduction)
由于本例程不需要配置时钟、中间件和外围设备,也不需要计算功耗,所以Clock Configurantion、Configuration、Power Consumption Caculator保持默认。
点击菜单栏的Project->Settings,输入STM32CubeMX工程名称、保存路径以及自己的工具链/集成编译环境,Code Generator中的设置保持默认,然后点击OK:(我的STM32CubeMX工程名称为LD2,保存路径为桌面,集成编译环境为Keil 5)
然后点击菜单栏的Project->Generate Code,或者点击快捷键生成包含HAL库的Keil工程以及初始化代码。此时对应路径上即会出现一个以此STM32CubeMX工程名称为名称的文件夹。打开对应路径上的文件夹,其中以.ioc为扩展名的文件即为STM32CubeMX的工程文件,以集成编译环境为名字的文件夹中含有以此STM32CubeMX工程名称为名称的此集成编译环境的工程文件,Drivers目录中包含了驱动程序,Inc目录中包含了头文件,Src目录中包含了源代码:(LD2.ioc文件即为刚刚创建的STM32CubeMX工程,MDK-ARM文件夹中的LD2.uvprojx文件即为刚刚生成的Keil工程)
四、 在Keil工程中添加自己的代码,然后编译、下载
打开Keil工程,根据注释找到添加代码的地方。请不要在提示之外的地方添加代码,否则再次生成STM32CubeMX工程时会被删除:(因为STM32CubeMX已经帮我们生成了初始化代码,所以我们只需要在/* USER CODE BEGIN 2 /与/ USER CODE END 2 */之间添加一句使PA5输出高电平的代码)
打开HAL驱动说明书找到我们需要的API,然后根据说明添加代码:(根据说明得到使PA5输出高电平的代码为HAL_GPIO_WritePin (GPIOA, GPIO_PIN_5, GPIO_PIN_SET);)
往工程中添加代码,然后点击编译,用ST-Link连接好计算机和开发板后点击
下载:
五、 下载完成后复位开发板,然后开发板的LD2(绿灯)亮了