keil5创建工程
8、将官方例程下的User_Drivers中的User_LED和User_System_Clock_Config以及User_USART1复制进我们的Users,里面存放要实现的功能和作用的代码。7、将官方例程下的Drivers中的CMSIS和PY32F002B_HAL_Driver复制进我们的core,里面用来存放核心文件和启动文件。9、前面的 8 个步骤,将需要的固件库文件复制到了工程目录【P
1. 新建基于寄存器开发的PY32F002B工程
(1)建立存放工程的文件夹
新建文件夹,文件名为“PY32F002BProject”,以后的工程都存放在该文件夹下,这样方便工程管理。PY32F002B工程可参照以下目录创建:
|
一级目录 |
二级目录 |
三级目录 |
|
PY32F002BProject |
||
|
工程名称(根据具体作用命名) |
||
|
Project(通用项目名称) |
(2)打开Keil5软件新建并保存工程
点击Project---New uVision Project---工程存放路径存放至刚新建的文件夹下。在此路径需要再新建一个文件夹用于存放本次工程。---工程文件名推荐使用开发板的名称:“PY32F002B”。然后在这个子目录下建立子文件夹“MDK_ARM”。工程具体的作用可以在文件夹名称中进行说明,比如“PY32F002B工程模板”。文件夹的名称是很方便改的,但项目名称不容易更改。



选择器件型号
Software Packs--Puya---PY32F002B--- PY32F002B。

(3)点击OK后会弹出一个Manage Run-Time Environment的窗口,这是Keil软件的一个新建工程小助手,可以帮助快速新建工程,暂时不需要该助手,关闭即可。


(4)现在看看[MDK_ARM]目录下的包含 3 个文件夹和 2 个文件。

这里的3 个文件夹是 MDK自动生成的,可以删掉或者直接不用管。【PY32F002B.uvprojx】是工程文件,不能删除!
5、接下来,在【PY32F002BProject】工程目录下面,新建 3 个文件夹 CORE,OBJ,,以及FWLib。
【CORE】 用来存放核心文件和启动文件 ;
【HAL】用来存放PY32F002B官方提供的库函数源码文件;
【CODE】 函数文件 main.c ,以及其他包括 py32f002b_it_c等等。 ;
【MDK_ARM】除了存放工程文件.
【Users】存放要实现的功能和作用的代码
6、将官方的例程的源码文件复制到我们的工程目录文件夹【User】下面。打开官方固件库包,定位到之前准备好的 PY32F002B开发板测试程序例程的目录:将测试程序下User的Inc,Src路径下。将目录下的 src ,inc 两个文件复制到刚刚建立的 【Code】文件目录下。src 是存放固件库的 .c 文件;inc 是存放对应的 .h 文件。

7、将官方例程下的Drivers中的CMSIS和PY32F002B_HAL_Driver复制进我们的core,里面用来存放核心文件和启动文件。

8、将官方例程下的User_Drivers中的User_LED和User_System_Clock_Config以及User_USART1复制进我们的Users,里面存放要实现的功能和作用的代码。

9、前面的 8 个步骤,将需要的固件库文件复制到了工程目录【PY32F002BProject】对应的文件夹下,接下来将这些文件加入到工程中去。
右键点击 【Target1】 - 【Manage Projec Items】。

10、 接着上一步,再对话框的 Project Targets一栏,将 Target 修改为 Tempalte , 然后再 Groups 一栏 删掉 Source Group1, 建立三个Groups:Core,Hal,Code,Users。然后点击【OK】,可以看到我们的Target 名称已经修改。

11、将之前复制到对应目录的文件添加进工程中。将Core的核心文件和启动文件文件添加进来:启动文件

核心文件

添加hal中的文件,从PY32F002B_HAL_Driver中的Src添加

再添加主函数

同样的方法, Users下面添加【Users】需要的文件。


把这三个文件夹的.c文件都添加进去
12、勾选 【Great HEX File】

选择好编译器

选择好正确的调试器

这个复位也要勾选,不然要在开发板上手动复位

14、配置 头文件路径。
点击 MDK 主界面左上角的 编译 按钮。
报错:头文件路径找不到。
点击魔术棒,选择 【C/C++】选项下的 Include Path 右侧的三个点,点击进去,添加头文件。把所有函数的头文件添加进去

注意:1.这里的路径是定位到 inc 目录下面,不要弄错。
2.工程中所有引用到了的头文件路径必须在这里包含。并且是包含到最后一级目录。
16、接下来,再来编译工程,又有很多同样的错误。这是为什么呢?
这是因为库函数在配置和选择外设的时候通过宏定义来选择的,所有需要配置一个 全局的宏定义变量。

填写USE_HAL_DRIVER,PY32F002Bx5到 Define 输入框内,然后点击 【OK】。
重要的预编译全局宏定义标识符:
USE_HAL_DRIVER,PY32F002Bx5 中间要用逗号“,”隔开。
这个宏定义标识符是干嘛的?
这是因为库函数在配置和选择外设的时候通过宏定义来选择的,所有需要配置一个 全局的宏定义变量。
更多推荐



所有评论(0)