1.安装

https://www2.keil.com/mdk5

点download

随便填写信息

点击MDK533.exe下载

MDK533.EXE (945,880K)

管理员身份运行桌面Keil uVision5

管理员模式打开注册机软件

keygen.exe下载

keil5 file→license management...

复制cid

.粘贴CID号,选择ARM,点击Generate按钮,得到注册号并复制

粘贴注册号,点击添加进行注册(出现如下图步骤3所示,即代表注册成功)

至此MDK5安装完成!

2.安装芯片包

Keil.STM32F1xx_DFP.2.1.0.pack

点击下载芯片包

我的版本是STM32F103RCT6

STM32命名规则

示例

 

 

STM32

产品系列

STMSTM32=基于ARM的32位微控制器

F

产品类型

F=通用类型

103

产品子系列

101=基本型

102=USB基本型,

USB2.0全速设备

103=增强型

105或107互联型

R

引脚数目

T=36脚

C=48脚

R=64脚

V=100脚

Z=144脚

C

闪存存储器容量

4=16K节的闪存存储器

6=32K字节的闪存存储器

8=64K字节的闪存存储器

B=128K字节的闪存存储器

C=256K字节的闪存存储器

D=384K字节的闪存存储器

E=512K字节的闪存存储器

T

封装

H=BGA

T= LQFP

U=VFQFPN

Y=WLCSP64

6

 

温度范围

6=工业级温度范围,-40℃-85℃

7=工业级温度范围,-40℃-105℃

 

内部代码

A或者空(详见产品数据手册)

 

选项

XXX=已编程的器件代号(3个数字)

TR=卷带式包装

记住版本新建工程可以选择

然后

1.新建文件

2.保存→起名名main.c(这时候看不到main.c)

3. 点Source Group 1→点main.c→add添加(这时候看到main.c)

3.st-link连线

stm32RCT6

stm32C8T6

1.1驱动安装(win10不装驱动会有感叹号)

百度云:https://pan.baidu.com/s/1K3OOKc4iYoHLBuq2Bv15AQ 
提取码:akdb 
天翼云:https://cloud.189.cn/t/3MbEVnJjY7jq

4.keil的st-link设置

options for target→Debug→ST-Link Debugger→Setting

如果线安装对,驱动对的话右边SWDIO出现Device name

去掉√,选择ST-Link

 

5.添加启动文件

 

4.1 从运行环境管理工具添加

第一个内核,第二个启动文件

4.2 下载官方标准库

https://www.st.com/en/embedded-software/stm32-standard-peripheral-libraries.html

1.选择f1

2.选择Get Software

Part Number General Description Software Version Supplier Download
STSW-STM32054 STM32F10x standard peripheral library 3.5.0 ST Get Software

填上信息除了邮箱其他可以随便填写,加上正确邮箱,会发到qq邮箱内,进入邮箱下载

启动文件路径在

...\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm

启动文件

区别

startup_stm32f10x_ld.s

ld:low-density-小容量, FLASH容量在16-32K之间

startup_stm32f10x_md.s

md: medium-density 中容量, FLASH容量在64-128K之间

startup_stm32f10x_hd.s

hd:high –density 中容量, FLASH容量在256-512K之间

startup_stm32f10x_xl.s

xl:超大容量, FLASH容量在512-1024K之间

以上四种都属于基本型,包括STM32F101xx、STM32f102xx、STM32f103xx系列

startup_stm32f10x_cl.s

scl: connectivity line devices互联型,特指STM32F105xx和STM32F107x系列

startup_stm32f10x_ld_vl.s

vl:value line devices超值型系列,特指STM32F100xx系列

startup_stm32f10x_md_vl.s

startup_stm32f10x_hd_vl.s

我的模块STM32F103RCT6需要startup_stm32f10x_hd.s,复制到工程目录下

点Source Group 1→选allfiles→把startup_stm32f10x_hd.s添加进来

6.设置外观字体

Edit→configuration→editor

Encoding:Chinese GB2312(Simplified)

Tab size:4

Edit→configuration→ Colors Fonts

 C/C++ Editor files→Text→Font

选幼圆字体

字体大小:20

7.编译警告

警告解决

Rebuild started: Project: led
*** Using Compiler 'V6.15', folder: 'C:\Keil_v5\ARM\ARMCLANG\Bin'
Rebuild target 'Target 1'
main.c(5): warning: no previous prototype for function 'SystemInit' [-Wmissing-prototypes]
void SystemInit(void)
^
main.c(5): note: declare 'static' if the function is not intended to be used outside of this translation unit
void SystemInit(void)
^
static
1 warning generated.
compiling main.c...
assembling startup_stm32f10x_hd.s...
linking...
Program Size: Code=324 RO-data=320 RW-data=0 ZI-data=1632
".\Objects\led.axf" - 0 Error(s), 1 Warning(s).
Build Time Elapsed: 00:00:00

选择低版本编译

project→options for target " target1"→ARM compiler→Use default compiler version 5

方法1

#include "stm32f10x.h"
int main(void){

}
void SystemInit(void)
{

}

方法2,不加 SystemInit 需要目录下添加system_stm32f10x.c文件

#include "stm32f10x.h"
int main(void){

}

8.HAL库固件下载

STM32F103RCT6 基于STM32Cube_FW_F1_V1.8.0库建立工程模板

1、下载STM32Cube_FW_F1_V1.8.0库文件

官方下载地址:

https://www.st.com/content/st_com/en/products/embedded-software/mcu-mpu-embedded-software/stm32-embedded-software/stm32cube-mcu-mpu-packages/stm32cubef1.html

天翼云下载:https://cloud.189.cn/t/7juUNzEjEbAj

9.每次上传不需要rest设置

1.点魔术棒→debug→settings→Flash Download → Rest and Run(√)

2.点魔术棒→debug→settings→Pack→Enable(去掉勾)

10.在新版本Keil中添加AC5编译器

我的是5.38.0

前往Arm Compiler 5 (ACOMP5)下载AC5,选择的版本是Arm Compiler 5.06 update 7 (build 960) Win32。也可以选择其他版本:

注意操作系统的选择:

下载好后安装,将其安装到Keil所在的安装目录下。例如笔者安装在D:\Keil_v5,则AC5就安装到D:\Keil_v5\Arm\目录下(新建个文件夹)。如图所示:

打开工程,打开Manage Project Items,点击Folders/Extensions选项卡:

点击ARM Compiler右侧的拓展选项:

点击新增ARM Compiler:

选中刚刚安装的AC5,点击确定,保存后关闭选项卡。在设置中选择使用AC5:

成功编译:

参考文献:

What should I do if I want to download a legacy release of Arm Compiler?

Arm Compiler downloads index

PS.使用此方法也可以在旧版Keil里使用AC6,只需要在官网下载一个AC6即可。

3.何为AC5?何为AC6?

Arm Compiler 5(即AC5),在Keil MDK V4版本及V5早期的版本都是使用AC5。在2015年的时候,AC6发布了,并在随后新版本的MDK中集成了AC6,直到现在最新版本的MDK集成了AC6.18。用户可以通过2.1一节中的方法修改AC5或AC6的版本。

AC5在编译时可以选择3种优化级别或者是不优化:

AC6在编译时可以选择6种优化级别或者是不优化:

同时,还可以选择C的版本:

关于每个优化级别具体是怎样优化的等等更详细的内容在此就不展开了。

 

11.各个文件夹作用

文件夹 功能描述
USER 存放用户编写的应用程序代码。
SYSTEM 包含系统初始化代码,用于配置系统时钟和系统初始化。
CORE 包含CMSIS相关的文件,提供与Cortex-M处理器内核相关的通用功能和接口。
FWLIB 可能包含STM32固件库的文件,用于访问和配置STM32的硬件资源和外设功能。
README 包含关于项目或文件夹的说明和指南。
HARDWARE 包含关于硬件的文档、电路图、引脚连接图等相关文件。

请注意,文件夹的具体功能可能因项目的需求和开发团队的偏好而有所不同。以上表格提供了一般情况下这些文件夹的典型用途。在实际项目中,可能会根据特定项目的需求添加其他文件夹或对文件夹进行进一步细分。此外,一些文件夹可能在项目中是可选的,具体取决于项目的规模和复杂程度。

在实际项目中,通常将不同类型的文件放置在特定的文件夹中,以更好地组织代码。以下是常见的文件夹和对应的文件类型的表格表示:

文件夹 文件类型 文件描述
Src .c 源代码文件,用于实现应用程序的功能和逻辑。
Inc .h 头文件,用于声明变量、函数和结构体等的声明。
Drivers .c, .h 外部驱动程序或库的源代码和头文件。
Utilities .c, .h 通用的工具函数或宏定义的源代码和头文件。
Config .h 配置文件,用于配置系统或应用程序的参数。
Examples .c, .h 示例代码或测试代码的源代码和头文件。
Board .c, .h 访问特定硬件资源时使用的源代码和头文件。

以上表格中列出的文件类型是常见的文件类型,实际项目中还可能有其他类型的文件。同时,文件夹的名称可能因项目的需求和开发人员的偏好而有所不同。重要的是保持代码的组织结构清晰和合理,这有助于提高代码的可读性和维护性。

 

12.keil5环境部分文件中文乱码解决方案

Keil 5 版本 v5.38.0.0

Keil 5 时遇到中文注释乱码的问题,您可以尝试以下方法解决:

在 Keil 5 中,选择 Edit -> Configuration -> Editor -> Encoding,然后选择一个支持中文的字体,例如 Chinese GB2312 (Simplified)