目录
一、获取官方固件包
二、新建工程文件夹
1、新建文件夹
2、拷贝/新建工程相关文件
2.1、Drivers文件夹
2.2、Projects文件夹
2.3、User文件夹
三、新建工程框架
1、新建工程
2、保存工程
3、选择主控型号
4、删除文件夹
四、添加文件
1、设置工程名和分组名
2、添加启动文件
3、添加User源码
4、添加SYSTEM源码
5、添加STM32F4xx_HAL_Driver源码
6、取消只读权限
五、魔术棒设置
1、Target选项卡
2、Output选项卡
3、Listing选项卡
4、C/C++选项卡
5、Debug选项卡
6、Utilities选项卡
六、添加主函数,并编写代码
1、创建main.c
2、编写main.c并进行编译
七、VScode配置【可选】
1、载入Keil工程
2、转换编码格式
一、获取官方固件包
方法一:ST官网搜索STM32Cube
方法二:正点原子官网获取,STM32参考资料——STM32CubeXX固件包
二、新建工程文件夹
1、新建文件夹
创建Template文件夹,在文件夹中新建下面几个文件夹
2、拷贝/新建工程相关文件
2.1、Drivers文件夹
在Drivers文件夹中新建BSP文件夹,CMSIS和STM32Fxxx_HAL_Driver文件通过拷贝STM32Cube固件包中的Drivers文件夹来获取,SYSTEM可以通过正点原子例程文件中获取
打开STM32Fxxx_HAL_Driver文件夹,保留Inc和Src文件夹(HAL库源码),其余删除
打开CMSIS文件夹,保留Device和Include文件夹,其余删除
2.2、Projects文件夹
在Projects文件夹中新建MDK-ARM文件夹,用于存放MDK工程文件
2.3、User文件夹
在User文件夹中添加stm32f4xx_hal_conf.h,stm32f4xx_it.c,stm32f4xx_it.h文件,可以从STM32CubeF4固件包\en.stm32cubef4_v1-26-0_v1.26.0\STM32Cube_FW_F4_V1.26.0\Projects\STM32F4-Discovery\Templates的Inc和Src中获取,也可以从正点原子新建工程实验中获取
三、新建工程框架
1、新建工程
打开Keil5,选择新建工程
2、保存工程
选择刚才创建的文件夹中的MDK-ARM,命名后点击保存
3、选择主控型号
选择对应的芯片型号,点击OK
点击Cancel
4、删除文件夹
打开文件夹中的MDK-ARM,删除Listings和Objects文件夹
四、添加文件
1、设置工程名和分组名
点击分组管理图标,设置工程名为Template,分组名为Startup,User,Drivers/SYSTEM,Drivers/STM32F4xx_HAL_Driver,Readme,点击OK
2、添加启动文件
打开分组管理,选择Startup分组,点击Add Files
回到Template目录,打开Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/arm,文件类型选择.s,选择对应的芯片型号,点击Add
3、添加User源码
选择User分组,点击Add Files,回到Template目录,打开User,选择stm32f4xx_it.c,点击Add
继续打开Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates,添加system_stm32f4xx.c文件
4、添加SYSTEM源码
选择Drivers/SYSTEM分组,点击Add Files,回到Template目录,打开Drivers/SYSTEM,分别添加对应的delay.c,sys.c,usart.c
5、添加STM32F4xx_HAL_Driver源码
选择Drivers/STM32F4xx_HAL_Driver分组,点击Add Files,回到Template目录,打开Drivers/STM32F4xx_HAL_Driver/Src,添加如下文件(HAL库所需最少文件)
这里要注意:一定要点击OK,点击关闭不会保存!!!
6、取消只读权限
由于官方固件包设置了只读权限,所以文件图标会出现黄色小钥匙,需要取消文件夹的只读权限
打开文件夹中的Drivers,对CMSIS和STM32F4xx_HAL_Driver文件夹右键,选择属性,取消只读选项
完成设置后的分组
五、魔术棒设置
1、Target选项卡
打开魔术棒,修改外部高速晶振为8MHz,编译器为AC5
AC5和AC6编译器对比
2、Output选项卡
点击Output,勾选创建hex文件
点击Select Folder for Objects,修改编译输出文件的路径为Template\Output
3、Listing选项卡
点击Listing,点击Select Folder for Listings,修改编译输出文件的路径为Template\Output
4、C/C++选项卡
点击C/C++,设置全局宏定义为USE_HAL_DRIVER,STM32F407xx,优化等级为Level 0,勾选C99
设置头文件包含路径如下图
5、Debug选项卡
点击Debug,设置下载器,按照自己的下载器型号来选择
点击Settings,选择当前下载器ATK-HSWL-CMSIS-DAP(有多少个下载器就会显示多少个),下载调试接口模式为SW,速率设置为最大值10MHz
6、Utilities选项卡
点击Utilities,确认勾选Use Debug Driver
点击Settings,勾选Reset and Run
设置完成点击OK
六、添加主函数,并编写代码
1、创建main.c
在User工程文件夹下右键,选择新建文件
选择.c文件类型,命名为main,点击右下角的...将文件添加到User文件夹下
点击分组管理,点击上移将main.c移动至第一行,点击OK保存
2、编写main.c并进行编译
复制以下代码到main.c
#include "./SYSTEM/sys/sys.h"
#include "./SYSTEM/usart/usart.h"
#include "./SYSTEM/delay/delay.h"
void led_init(void);
int main(void)
{
HAL_Init(); /* 初始化HAL库 */
sys_stm32_clock_init(336, 8, 2, 7); /* 设置时钟,168Mhz */
delay_init(168); /* 延时初始化 */
led_init(); /* 初始化LED */
while(1)
{
HAL_GPIO_WritePin(GPIOF,GPIO_PIN_9,GPIO_PIN_RESET); /* LED0 亮 */
HAL_GPIO_WritePin(GPIOF,GPIO_PIN_10,GPIO_PIN_SET); /* LED1 灭 */
delay_ms(500);
HAL_GPIO_WritePin(GPIOF,GPIO_PIN_9,GPIO_PIN_SET); /* LED0 灭 */
HAL_GPIO_WritePin(GPIOF,GPIO_PIN_10,GPIO_PIN_RESET); /* LED1 亮 */
delay_ms(500);
}
}
void led_init(void)
{
GPIO_InitTypeDef gpio_init_struct;
__HAL_RCC_GPIOF_CLK_ENABLE(); /* LED0,LED1时钟使能 */
gpio_init_struct.Pin = GPIO_PIN_9; /* LED0引脚 */
gpio_init_struct.Mode = GPIO_MODE_OUTPUT_PP; /* 推挽输出 */
gpio_init_struct.Pull = GPIO_PULLUP; /* 上拉 */
gpio_init_struct.Speed = GPIO_SPEED_FREQ_HIGH; /* 高速 */
HAL_GPIO_Init(GPIOF, &gpio_init_struct); /* 初始化LED0引脚 */
gpio_init_struct.Pin = GPIO_PIN_10; /* LED1引脚 */
HAL_GPIO_Init(GPIOF, &gpio_init_struct); /* 初始化LED1引脚 */
HAL_GPIO_WritePin(GPIOF, GPIO_PIN_9, GPIO_PIN_SET); /* LED0 灭 */
HAL_GPIO_WritePin(GPIOF, GPIO_PIN_10, GPIO_PIN_SET);/* LED1 灭 */
}
点击全编译按钮
编译完成后显示零错误零警告,工程模板创建完毕!!!
七、VScode配置【可选】
1、载入Keil工程
安装并启动扩展组件Keil Assistant
点击添加工程,选择MDK-ARM项目工程,点击Open
注意右下角弹出的提示(是否切换工作区),点击OK
勾选信任工程文件,点击Yes
2、转换编码格式
打开main.c,选择编码格式,点击通过编码重新打开
选择GB2312
选择编码格式,点击通过编码保存
文章来源:https://www.toymoban.com/news/detail-857373.html
选择UTF-8,同理将delay、sys、usart文件和对应的头文件转换为UTF-8即可文章来源地址https://www.toymoban.com/news/detail-857373.html
到了这里,关于【1】STM32·HAL库·新建工程模板【一步到位】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!