新建一个项目
keil5内配置步骤
基本配置

然后在工程文件里面分别新建Start, Library和User三个文件夹(名称不做要求), 复制固件库里面的文件到工程文件夹:

在Start文件夹添加工程文件
首先复制在...\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm内的startup文件, 具体复制哪一个根据你的芯片型号选择, 我这里选择后缀为_md的文件:

接下来复制在...\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x内的三个文件, 分别对应着一个外设寄存器描述文件, 两个时钟配置文件:

最后复制在...\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\CMSIS\CM3\CoreSupport下的文件, 也就是内核寄存器描述文件:

把上述文件粘贴至刚刚创建的Start文件夹中:

在Library文件夹添加工程文件
复制...\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver\inc下的所有文件:

复制...\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver\src下的所有文件:

把上述文件粘贴至刚刚创建的Library文件夹中.
在User文件夹添加工程文件
复制...\STM32F10x_StdPeriph_Lib_V3.6.0\Project\STM32F10x_StdPeriph_Template下的这三个文件, 分别用来配置库函数头文件的包含关系和中断处理函数:

把上述文件粘贴至刚刚创建的User文件夹中.
keil5中引入文件
回到keil5, 创建三个Group, 名字分别对应:

双击每一个文件夹, 将刚刚复制的文件全部添加进去:



然后点击魔术棒->C/C++->Include Paths, 把刚刚三个文件夹全部include一下:

如果需要在keil5里面编译和调试, 首先在魔术棒选项把编译器改成AC5, 在Debug选项选择你的烧录器, 我这里是ST-Link, 在Settings->Flash Download里勾选Reset and Run, 在Pack里取消勾选Enable即可.
在C/C++选项添加宏定义USE_STDPERIPH_DRIVER:

我们这里右键User文件夹, 添加新的.c文件作为main文件, 并且include一下stm32f10x.h文件, 注意最后一行留空, 不然会警告:


我们最后编译并烧录, 没有问题:

VSCode配置步骤
具体要下载的插件和前期配置参考这个博客Vscode开发STM32标准库-CSDN博客
打开VSCode, 选择左侧的EDIE图标, 导入刚刚的项目, 依次选择MDK->ARM:

在芯片支持包->From Disk添加所需的支持包:

修改构建器选项, 构建配置->构建器选项->全局选项, 勾选Use MicroLIB, 在链接器取消勾选不生成Hex/Bin/S19等二进制文件:


烧录配置我这里使用ST-Link, 所以选择OpenOCD:

最后在C/C++属性->预处理器定义里添加一个宏定义STM32F10X_MD:

最后, 编译, 烧录, 大功告成:

部分信息可能已经过时