使用HAL库、STM32CubeMX和Keil 5开发入门教程(一):点亮一盏LED灯(NUCLEO-F411RE)
来源:互联网 发布:电力电子研究生知乎 编辑:程序博客网 时间:2024/06/02 23:10
本教程以点亮一盏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(绿灯)亮了
- 使用HAL库、STM32CubeMX和Keil 5开发入门教程(一):点亮一盏LED灯(NUCLEO-F411RE)
- 使用HAL库、STM32CubeMX和Keil 5开发入门教程(一):点亮一盏LED灯(NUCLEO-F411RE)
- 使用HAL库、STM32CubeMX和Keil 5开发入门教程(一):点亮一盏LED灯(NUCLEO-F411RE)
- 使用HAL库、STM32CubeMX和Keil 5开发入门教程:GPIO
- 使用HAL库、STM32CubeMX和Keil 5开发入门教程(二):GPIO
- 使用HAL库、STM32CubeMX和Keil 5开发入门教程(二):GPIO
- 点亮LED灯(一)
- ARM11裸机开发(一)---点亮LED
- 利用keil编写stm32循环点亮一LED灯
- 嵌入式Linux裸机开发(一)——点亮Led
- Jlink FL2440 裸机开发(一) 点亮LED和按键控制
- 如何点亮一盏LED灯
- STC89C52单片机学习(一)----点亮LED
- stm32学习笔记(一)点亮LED
- 树莓派3点亮一盏LED(Python)
- winCE点亮一盏LED
- 使用STM32CubeMX开发一:跑马灯实验
- TQ210的裸机编程(一)点亮一个LED灯
- 51单片机——DS18B20
- JavaScript实现文本框中默认显示背景图片在获得焦点后消失的方法
- JavaMail发送邮件API简单介绍
- Vim命令合集
- Reactt-Native 学习过程
- 使用HAL库、STM32CubeMX和Keil 5开发入门教程(一):点亮一盏LED灯(NUCLEO-F411RE)
- 20160304小记
- 通知
- iOS KVC和一些基础知识了解
- MFC编写图形化的c++程序(基于对话框的图形界面程序)
- 安装Cocoapods 报错ERROR: While executing gem ... (Errno::EPERM) Operation not permitted - /usr/bin/fuzzy
- 彻底解决hibernate懒加载转json
- libgdx 与 android 的 proguard.cfg
- LA 3027(p192)----Corporative Network