Keil创建stm32f103c8t6标准库
ST官方:https://www.st.com/content/st_com/en.html
1.新建ASM目录,存放与单片机相关的汇编文件,拷贝1个文件到该目录下
c8t6属于中容量 STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm
1.startup_stm32f10x_md.s
2.新建System目录,存放内核相关、中断入口定义、一些重要的头文件,拷贝8个文件到该目录下
STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\CMSIS\CM3\CoreSupport
1.core_cm3.c
2.core_cm3.h
STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x
3.stm32f10x.h
4.system_stm32f10x.c
5.system_stm32f10x.h
STM32F10x_StdPeriph_Lib_V3.6.0\Project\STM32F10x_StdPeriph_Template
6.stm32f10x_conf.h
7.stm32f10x_it.c
8.stm32f10x_it.h
3.新建Lib目录,存放固件库源码与头文件,拷贝标准库里的以下两个目录
STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver\inc
STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver\src
4.新建Usr目录,存放开发者自己的源码
添加main.c文件
注意事项:arm compile选择V5.06
arm compile5安装目录要移动到keil安装目录xia的ARM目录下,否则编译会报错
编译遇到.\Objects\c8t6.axf: Error: L6218E: Undefined symbol assert_param (referred from misc.o).
第一次使用st32标准库函数编码,遇到这个问题,上CSDN搜完之后大概是因为预定义的预处理符号USE_STDPERIPH_DRIVER没有添加到工程对应的preprocessor symbols(预处理符号),如下操作添加重新编译即可成功。