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 或者单步调试了。