目录
一.学习JLINK在MDK上的配置
二.库函数和寄存器的区别:
三.基于固件库
1.创建新工程:
2.配置环境:
3.设置文件:
4.编译成功:
四.基于寄存器:
1.创建新工程
2.对环境进行配置
一.学习JLINK在MDK上的配置
*千万不能在JLINK升级的断开JLINK。
二.库函数和寄存器的区别:
- 本质上是一样的。我们可以再库函数模板里面,直接操作寄存器,因为官方库相关头文件有寄存器定义。但是不能在寄存器模板调用库函数,因为没有引入库函数相关定义。
?-?了解寄存器基本原理的目的是为了让我们对STM32相关知识有比较深入的理解,这样在开发过程中方可得心应手,游刃有余。底层代码配置出了问题需要调试的话,必须对寄存器有一定
三.基于固件库
1.创建新工程:
1).新建文件夹,然就在文件夹中建立一个子文件夹。
2).点击 MDK 的菜单:Project –>New Uvision Project ,然后将目录定位到刚才建立的文件夹 Template 之下,在这个目录下面建立子文件夹 USER录,?然后定位到 USER 目录下面,我们的工程文件就都保存到 USER 文件夹下面。工程命名为 Template,点击保存。接下来会出现一个选择 CPU 的界面,就是选择我们的芯片型号。,因为 ALIENTEK 战舰 STM32F103 所使用的 STM32 型号为 STM32F103ZET6,所以在这里我们选择 STMicroelectronics?STM32F1 Series?STM32F103?STM32F103ZET6。
3).点击 OK,MDK 会弹出 Manage Run-Time Environment 对话框,后点击cancel即可。
4).到现在为止USER中会含有两个文件夹和两个文件。
5).接下来,我们在 Template 工程目录下面,新建 3 个文件夹 CORE, OBJ 以及 STM32F10x_FWLib。
6).打开官方固件库包,定位到我们之前准备好的固件库包的目录: STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver 下面, 将目录下面的 src,inc 文件夹 copy 到我们刚才建立的 STM32F10x_FWLib 文件夹下面。
成功之后变成这样。
7).下面我们要将固件库包里面相关的启动文件复制到我们的工程目录 CORE 之下。
8).定位到目录。
2.配置环境:
9) 前面 8 个步骤,我们将需要的固件库相关文件复制到了我们的工程目录下面,下面我们将 这些文件加入我们的工程中去。右键点击 Target1,选择 Manage Project Items。
10) Project Targets 一栏,我们将 Target 名字修改为 Template,然后在 Groups 一栏删掉一个 Source Group1,建立三个 Groups:USER,CORE,FWLIB。然后点击 OK,可以看到我们的 Target 名字以及 Groups 情况。
11) 下面我们往 Group 里面添加我们需要的文件。
12) 用同样的方法,将 Groups 定位到 CORE 和 USER 下面,添加需要的文件。这里 我们的 CORE 下面需要添加的文件为 core_cm3.c,startup_stm32f10x_hd.s (注意,默认添加的 时候文件类型为.c,也就是添加 startup_stm32f10x_hd.s 启动文件的时候,你需要选择文件类型 为 All files 才能看得到这个文件),USER 目录下面需要添加的文件为 main.c,stm32f10x_it.c, system_stm32f10x.c. 这样我们需要添加的文件已经添加到我们的工程中了,最后点击 OK,回到工程主界面。
13) 接下来我们要编译工程,在编译之前我们首先要选择编译中间文件编译后存放目录。
3.设置文件:
14) 下面我们点击编译按钮 编译工程,可以看到很多报错,因为找不到头文件。
15) 下面我们要告诉 MDK,在哪些路径之下搜索需要的头文件,也就是头文件目录。这里大 家要注意,对于任何一个工程,我们都需要把工程中引用到的所有头文件的路径都包含到 进来。回到工程主菜单,点击魔术棒 ,出来一个菜单,然后点击 c/c++选项.然后点击 Include Paths 右边的按钮。弹出一个添加 path 的对话框,然后我们将图上面的 3 个目录添 加进去。记住,keil 只会在一级目录查找,所以如果你的目录下面还有子目录,记得 path 一定要定位到最后一级子目录。然后点击 OK.
16)定位到 c/c++界面,然后填写 “STM32F10X_HD,USE_STDPERIPH_DRIVER”到 Define 输入框里面(请注意,两个标识符 中间是逗号不是句号,如果您不能确定您输入的是正确的,请直接打开我们光盘任何一个 库函数实例,然后复制过来这串文字即可)。这里解释一下,如果你用的是中容量那么 STM32F10X_HD 修改为 STM32F10X_MD,小容量修改为 STM32F10X_LD. 然后点击 OK。
17) 这次在编译之前,我们记得打开工程 USER 下面的 main.c 文件,复制下面代码到 main.c 覆盖已有代码,然后进行编译。
18) 这样一个工程模版建立完毕。下面还需要配置,让编译之后能够生成 hex 文件。同样点击 魔术棒,进入配置菜单,选择 Output。然后勾上下三个选项。 其中 Create HEX file 是编 译生成 hex 文件,Browser Information 是可以查看变量和函数定义。
4.编译成功:
19) 重新编译代码,可以看到生成了 hex 文件在 OBJ 目录下面,这个文件我们用 flymcu 下载 到 mcu 即可(参考 3.4.2 小节)。到这里,一个基于固件库 V3.5 的工程模板就建立了。
四.基于寄存器:
1.创建新工程
1)新建文件夹,然就在文件夹中建立一个子文件夹。
2)创建新工程后在keil新建工程CPU中STM32的选择合适的芯片。
3)后点击cancel。
4)将启动文件添加到USER下,然后新建OBJ文件夹,最后将SYSTEM文件夹复制过来。
2.对环境进行配置
问题:在配置的过程中有些文件以及串口没有找到,通过百度查询以及请教学长解决了大部分问题,但还有一些没有解决,例如有些芯片的数据包找不到导致keil新建工程CPU没有STM32的选项,以及配置驱动没有插口等,以上问题还需要再思考,去想办法解决。
|