STM32F103VCT6 开发板使用说明
一:开发板简单说明
由内核 STM32 ,一个串口(及串口控制芯片) ,一个外接 flash,一个 LCD 屏(及 LCD
控制芯片)等等构成。
Relaview 仿真工具通过 20 针接口链接板子,另一个 USB 线提供电源。
二: Keil 安装与破解
正常安装 MDK410 过后,打开 Keil 工具 File->License  Management,获取软件 CID 后
复制进破解工具 Keil_Lic ,如图选择芯片类型
点击 Generate 按钮后,将序列号填入 Keil 软件即可(如有警告,则上述动作需要在有
执行权限的系统账号下运行,如
adm 用户)
三:样例工程创建
1:需要事前说明,实际工程文件的组织结构与
Keil 软件界面显示的是两回事情,电脑
文件系统中的结构是文件实际存储的结构,是文件真实存在的地方,而
的只是一个工程结构, 只是一个组, 为了方便, 这些组可以取和文件系统下的文件夹一样的
名字,但实际上两者是互不影响,互不关联的,组,仅仅只是一个名字,创建了组,并不会
创建出对应的文件夹来。
Keil 软件界面看见
2: STM32 工程一般划分为如下几个文件夹, ( 1) USER,存放用户自己的具体功能程
序文件;( 2) CORE,存放 arm 内核文件,启动文件等; ( 3)OBJ,存放编辑过程中产生的
文件;( 4)SYSTEM ,存放 arm 自己的系统文件,分两个类型,一个是寄存器版本,代码精
简,但什么都要自己去控制,另一个是库函数版本,被厂家封装好,便于调用,但代码量比
较臃肿;( 5)HARDW ARE ,存放一些基本的硬件控制文件,如
按键,触摸屏等; ( 6) FWLib ,存放了芯片上所有外设的驱动文件。
IIC ,LCD ,LED ,FLASH ,
3:以一个两灯交替闪亮的程序为例,需要在对应工作文件空间建立如下几个文件夹:
USER, CORE, OBJ, SYSTEM , HARDW ARE ( LED )。
4:打开 Keil 工具,选择 Project->New  μ Version  Project, 开始创建工程如图
后紧接着需要选择关联的芯片类型, 我们选择 STMicroelectronics->STM32F103VC, 可以
看见芯片的相关硬件参数,
点击 Ok 后会提示是否需要拷贝 STM  32 的启动代码到工程文件中,可以选择是,
为了
初学,可以选择否后手工添加。
5:在实际文件系统中添加程序文件,在
CORE 文件夹中添加文件 startup_stm32f10x_h
d.s,该文件为通用文件;在 USER 文件夹中添加用户功能程序文件
我们初始化了系统时钟和 LED 灯后,写了一个无限循环来使 2 个 LED 灯交替点亮;在 SY
pao.c,在这个文件里,
STEM 文件夹中可以先暂时复制基本的
中复制 LED 的驱动文件过来,以上这些仅仅是后台的文件建立,在
见什么的。
delay, sys, usart 文件夹内容过来,在 HAREW ARE
Keil 工程界面中是看不
6:建立后台文件与前台工程的关联, 方便前台来对程序进行编辑, 编译,烧录等操作。
选择 Project 窗口下的 Target  1 对象,右键选择 Manage  ComPonents 来执行关联动作,为了
避免混淆, 可以删除掉默认的 Target  1 对象和 Source  Group1 组,新建你想要的对象名和组
名,如下图,
并通过 Add  Files 将后台的 s, c 文件分别添加进对应的组内。
7:编译参数的设置
右键上面设置的 PaoMadeng 工程,选择 Options  for  Target  ’PaoMaDeng’, 打开界面如
下,( 1)在 Output 标签页,选择 Select  Folder  for  Objects,将后台的 OBJ 文件夹路径选择
上,并将 Create  HEX  File 选上,可以同步生成 16 进制的可执行文件;
( 2)在 C/C++ 标签页,在 include  Paths 选择上所有 .h 文件的路径,
注意在添加了所有的文件路径后, 要把鼠标点击生成的蓝槽置于最下面的空白一行,
如
果蓝槽是覆盖了有路径名的最后一行,会导致最后一行的路径添加失败。
( 3)在 Debug 标签页, 由于我们使用硬件仿真, 可以选择上右面的 Use 仿真器 ,通过下
拉框,选择 ULINK  Cortex  Debugger,再点击 Settings,使用 SW 与 stm32 进行通讯,
可在 SW  Device 中看见设备名,如果看不见,说明与
stm32 连接不正常。
( 4)在 Utilities 标签页, target 对象与 Debug 标签页的保持一致就可以了。
四:编译,烧录
target  'PaoMaDeng' 
点击 Build ,会打印如下信息
Build 
compiling  pao.c... 
compiling  sys.c... 
compiling  usart.c... 
compiling  delay.c... 
assembling  startup_stm32f10x_hd.s... 
compiling 
linking... 
..\OBJ\paomadeng.axf:  Error:  L6218E:  Undefined  symbol  SystemInit  (referred  from  star
led.c... 
tup_stm32f10x_hd.o). 
Target  not  created 
是由于我们的简化工程中没有定义
SystemInit 这个函数,可以暂时把 startup_stm32f10x
_hd.s 文件中
Reset_Handler 
PROC 
[WEAK] 
EXPORT  Reset_Handler 
IMPORT  __main 
IMPORT  SystemInit 
LDR 
BLX 
R0,  =SystemInit 
R0 
这部分的最后 3 行暂时删除来规避一下,就可以规避通过了。然后用
Ctrl+F5 即可烧录
进板子中,然后就可以 run 或者单步调试了。