用CubeMx创建了好多stm32的工程,这里记录下手动创建keil工程的过程。
一、准备工作
1.1、下载对应的HAL库,
这里使用的是stm32f103c8t6, 下载地址stm32HAL库
在页面中输入对应型号点击进行二级页面进行下载
1.2、准备工程
各文件夹下具体操作如下:
Doc | 相关文档 |
Drivers | 将STM32CubeF1-master\STM32CubeF1-master\Drivers\STM32F1xx_HAL_Driver、STM32CubeF1-master\STM32CubeF1-master\Drivers\CMSIS下的文件放入到该文件夹下,这里要进行文件删除,具体见下 |
Inc | 将STM32CubeF1-master\STM32CubeF1-master\Projects\STM32F103RB-Nucleo\Templates\Inc下的文件放入到该文件夹下 |
MDK-ARM | STM32CubeF1-master\STM32CubeF1-master\Projects\STM32F103RB-Nucleo\Templates\MDK-ARM下的startup_stm32f103xb.s复制到该文件夹下 |
Src | 将STM32CubeF1-master\STM32CubeF1-master\Projects\STM32F103RB-Nucleo\Templates\Src下的文件放入到该文件夹下 |
Drivers:
CMSIS:
对于CMSIS,除了Include和Device 其它全部删除,对于Device/ST/STM32F1xx下的文件除了Include和Source其它全部删除,对于Source/Templates下只保留system_stm32f1xx.c
STM32F1xx_HAL_Driver:
除了Inc和Src,其它全部删除; Src 下删除文件名带有_ll_的.c文件,Inc下删除文件名带有_ll_的.h文件
二、创建工程,放在MDK-ARM目录下
选中对应的型号,这里是stm32f103c8
选中CMSIS下的CORE(Cortex-M处理器支持)
工程创建完成之后要对工程进行配置
添加分组
Application/MDK-ARM
Application/User/Core
Drivers/STM32F1xx_HAL_Driver
Drivers/CMSIS
添加头文件
../Inc
../Drivers/STM32F1xx_HAL_Driver/Inc
../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy
../Drivers/CMSIS/Device/ST/STM32F1xx/Include
../Drivers/CMSIS/Include
添加宏
USE_HAL_DRIVER,STM32F103xB
编译报错
删除#include "stm32f1xx_nucleo.h"
再次编译,还是报错
删除template相关文件,在目录中也要删除
第三次编译,不报错,但是一堆警告
警告是由Keil 中ARM的编译器版本导致 ,默认是version 6,
第四次编译,大功告成
调试器配置
三、点灯代码验证工程
int main(void)
{GPIO_InitTypeDef GPIO_InitStruct = {0};HAL_Init();/* Configure the system clock to 64 MHz */SystemClock_Config();__HAL_RCC_GPIOB_CLK_ENABLE();GPIO_InitStruct.Pin=GPIO_PIN_9; //PF9,10GPIO_InitStruct.Mode=GPIO_MODE_OUTPUT_PP; //推挽输出GPIO_InitStruct.Pull=GPIO_PULLUP; //上拉GPIO_InitStruct.Speed=GPIO_SPEED_HIGH; //高速HAL_GPIO_Init(GPIOB,&GPIO_InitStruct);/* Infinite loop */while (1){}
}