Stm32f407 HAL库建立模板
硬件平台: stm32f407ve
软件平台: win10 (OS Name: Microsoft Windows 10 Enterprise
OS Version: 10.0.18363 N/A Build 18363)
Keil5 5.26.2
HAL库版本: 2.14.0(目前下载的最新的)
1.在工程路径下建立一个空的文件夹
2.打开keil5,没有建立工程,应该示空白工程(我的版本是5.26.2)。
3.我现在安装的hal库的版本:
4. 新建工程
5. 选择工程保存的路径,就是第一步新建的文件夹中
6. 选择自己的cpu类型,我们选择407ve
7. 弹出的以下对话框,下一步将进行一些选择
8. 设置,按图上的标记选择
9.工程初步建立好了,还需要进一步设置
10.创建空白文件--->main.c文件和main函数
11.选择保存的时候,会弹出对话框
12.修改main.c文件,写入main函数,如下图
- 把main.c加入到工程中
14.弹出的对话框,选中main.c文件
15. 初步编译,没有错误和警告(模板基本完成),但是这个工程没有任何功能。
17.如果要点亮led,那还会跟开发板硬件有比较大的关系,所以以下的步骤不一定适合每一个人。我只能根据我自己的开发板进行开发,如果你的硬件与我不同的话,请注意区别。
18.我的led原理图,我的只有3个led,分别连接在GPIOE的13,14,15号引脚。低电平点亮。
18.代码如下:
19.编译会有一些错误
20.增加宏定义如下图示
21.使用HAL库,需要执行HAL_Init();再次编译,没有错误,即可以把程序下载到开发板了。
#include <stm32f4xx.h>
void led_init(void)
{
GPIO_InitTypeDef GPIO_Init;
//1.时钟使能
__HAL_RCC_GPIOE_CLK_ENABLE();
//2.端口设置
GPIO_Init.Mode = GPIO_MODE_OUTPUT_OD; //输出开漏模式
GPIO_Init.Pin = GPIO_PIN_13 | GPIO_PIN_14 | GPIO_PIN_15;
GPIO_Init.Pull = GPIO_PULLUP;
GPIO_Init.Speed = GPIO_SPEED_FREQ_LOW;
// GPIO_Init.Alternate = ; //GPIO的mode设置位复用功能的时候,才会配置复用功能
HAL_GPIO_Init(GPIOE, &GPIO_Init);
//3.点亮或熄灭灯
}
int main(void)
{
HAL_Init(); //必须在第一个语句执行
led_init();
while(1)
{
}
}
github的工程源码: