使用HAL库、STM32CubeMX和Keil 5开发入门教程(一):点亮一盏LED灯(NUCLEO-F411RE)
2017-11-03 10:01
501 查看
本文转载自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,然后单击New Project:
选择Series(系列)、Lines(系列)、Package(封装),然后选中自己MCU的型号,点击OK:(我的MCU是STM32F411RE,64引脚LQFP封装)
至此一个STM32CubeMX工程已经建立好:
打开开发板原理图,查看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工程,根据注释找到添加代码的地方。请不要在提示之外的地方添加代码,否则再次生成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连接好计算机和开发板后点击
下载:
一、学习前的准备工作
硬件:一块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(绿灯)亮了
相关文章推荐
- 使用HAL库、STM32CubeMX和Keil 5开发入门教程(一):点亮一盏LED灯(NUCLEO-F411RE)
- 使用HAL库、STM32CubeMX和Keil 5开发入门教程(一):点亮一盏LED灯(NUCLEO-F411RE)
- 使用HAL库、STM32CubeMX和Keil 5开发入门教程(二):GPIO
- 使用HAL库、STM32CubeMX和Keil 5开发入门教程:GPIO
- 用Keil-MDK开发TQ2440裸机程序入门教程——LED流水灯实现
- 用Keil-MDK开发TQ2440裸机程序入门教程——LED流水灯实现
- 用Keil-MDK开发TQ2440裸机程序入门教程——LED流水灯实现
- 用Keil-MDK开发TQ2440裸机程序入门教程——LED流水灯实现
- 使用SpringMvc开发Android WebService接口入门教程
- [入门教程]使用Cocos2d-html5游戏引擎编写一个简单的游戏 第一回合: 搭建开发环境
- 使用 ADD-ON SDK 开发 基于 Html JQuery 和 CSS 的 firefox 插件入门教程1: 创建一个简单的 Add-on
- PHP开发工具Zend Studio7入门使用教程(转)
- Flexpaper二次开发入门教程》(十) Flexpaper简单使用-第一个Flexpaper例子
- python入门基础教程03 Python开发环境基本使用
- 腾讯云使用教程 基本工具 开发工具软件 从入门到精通 图文教程
- 用Keil-MDK开发TQ2440裸机程序入门教程(把裸机程序下载到Nor Flash中!)
- 用Keil-MDK开发TQ2440裸机程序入门教程
- phonegap 开发入门 PhoneGap官方网站上有详细的入门示例教程,这里,我针对使用PhoneGap进行Android移动应用的开发对其官网的Get Started进行一些介绍、补充。 Ste
- 【入门教程】使用Eclipse搭建C/C++开发环境
- 使用XFire开发Web Service客户端完整入门教程