使用HAL库需要为工程准备许多相关文件,也就是创建HAL库的工程模板。工程模块没有统一的格式, 通常是根据多年的开发经验和使用习惯总结出来的。
各文件夹、文件说明如下: ? Core:存放从SDK文件夹抽取的部分可能会修改的核心文件; ? Driver: 存放用户编写的外设驱动文件; ? Main: 存放主函数文件; ? Project: 存放Keil工程文件,包含目标二进制文件; ? SDK:存放CMSIS和HAL库; ? Clean.bat:Windows脚本,用于清理Project里Keil生成的工程文件; ? Readme.txt:该工程的说明信息 “SDK”目录的内容来自配套资料“2_原厂资料\7.0_en.stm32cubef1(原厂固件包示例源码).zip”,即里 面“Drivers”目录下的“CMSIS”和“STM32F1xx_HAL_Driver”。 “Core”目录的内容来自“CMSIS\Device\ST\STM32F1xx\Source\Templates\arm\startup_stm32f103xb.s”; “STM32Cube_FW_F1_V1.8.0\Projects\STM3210E_EVAL\Templates\”下的“Src\system_stm32f1xx.c”、“Src\stm32f1xx_it.c”、“Inc\stm32f1xx_it.h”、“Inc\stm32f1xx_hal_conf.h”;还需要手动创建“stm32f1xx_clk.c” 和“stm32f1xx_clk.h”,这两个文件内容是一些时钟初始化,参考“1_工程模板”的工程代码。 “Driver”目录存放用户编写的外设驱动代码,比如LED灯驱动,这里示例不涉及外设,暂为空。 “Main”为存放主函数文件目录,创建“main.c”和“main.h” ,参考“1_工程模板”的工程代码。 “Project”用于存放工程文件,工程文件由创建Keil工程自动生成,这里打开Keil。 打开Keil后,点击“Project”下的“New μVision Project”,如图 7.1.2 所示。
接着选中“Main”组后,点击“Add Files…”,选中“main.c”,再点击“Add
接着选中“Core”,点击“Add Files…”,接着在弹出的文件选择界面,进入“Core”目录,然后需要 修改“文件类型”下拉选择框为“All files(.)”,才能看到所有文件。接着添加如图以下文件。
再点击“Groups”的 新建图标,创建一个新的组,名为“Driver”,该组没有文件,无需添加。再新 建“SDK”,加入“SDK\STM32F1xx_HAL_Driver\Src”下的几个必须文件。
点击“工程项目选项”按钮 ,在弹出的窗口,选择“Target”标签,如图 所示。追求稳定,这里设置ARM交叉编译工具链为“Use default compiler version 5”。“Use MicroLIB”也可以勾选上,编译出来的文件占用资源会更小,也为后面调试串口实验提供printf。再下面是Flash和RAM的起始地址和大小,与前面图 所示的Flash和RAM是 吻合的,这里无需修改。
切换到“Output”,勾选上“Create HEX File”,生成hex文件供其它烧写工具使用
再切换到“C/C++”标签,在“Define”栏填入“USE_HAL_DRIVER,STM32F103xB”,分别表示使 用HAL库,使用的芯片型号系列。HAL库很多C语言语法采用C99标准,这里需要勾选上“C99 Mode”,不 然会编译报错。最后点击“Include Paths”最右边的按钮 添加头文件,如图 所示。 在弹出的文件夹设置窗口,点击 按钮,依次添加如图所示路径,最后点击“OK。
切换到“Debug”标签,点击 我们使用的ST-Link,因此需要选择“ST-Link Debugger”,最后点击“OK”。
编译后出现Verify ok即表示编译、烧写都正常(当前工程主函数没有任何内容,开发板无任何现象。
总结 工程模块的创建步骤如下:
- 创建相关文件夹;
- 复制CMSIS和HAL库;
- 创建“main.c/h”和“stm32f1xx_clk.c/h”;
- 创建新Keil工程;
- 添加组文件夹和工程文件;
- 配置Keil设置
Keill的通用设置 1. Keil默认在下载程序后,需要手动按下开发板复位才能启动程序。通过修改修改配置,可以下载后自动 复位重启运行程序,方便调试 切换到“Utilities”标签,点击“Settings
随后弹出设置界面,切换到“Flash Download”标签,勾选上“Reset and Run”,如图 所示。接 着再切换到“Pack”标签,去掉勾选“Enable”,如图所示
实际开发中,可能需要Bin格式的下载文件,而Keil默认不会生成Bin格式文件,需要进行相关配置。点击按钮,切换到“User”标签,在“After Build/Rebuild”添加“fromelf --bin -o "$L@L.bin" "#L "”,同时 勾选“Run #1”,表示在编译完后,执行fromelf命令生成bin文件。
设置完成后,点击“OK”保存。重新编译整个工程,将在工程的“Project\Objects”目录下生成xx.bin文件(xx为工程名)。
|