[综合信息] 华大单片机如何向MDK中加入头文件和库文件

[复制链接]
 楼主| coshi 发表于 2021-8-7 16:03 | 显示全部楼层 |阅读模式
大多数习惯于8位单片机开发的工程师,都会使用操作寄存器的方式来使用单片机。当初次接触华大单片机库开发的时候,会发现库里有好多的文件,不知道如何下手。本篇**会先介绍库的结构和里面关键文件,之后会介绍如何向之前建立好的工程里加入文件,使工程能编译起来。
我们首先看下HC32F003芯片的DDL库里文件结构

60383610e3e3df40ef.png

 楼主| coshi 发表于 2021-8-7 16:05 | 显示全部楼层
关键文件介绍
startup_hc32f003.s文件为汇编格式的文件,是启动文件。启动文件主要是进行堆栈之类的初始化,中断向量表以及中断函数定义。启动文件要完成引导进入 main 函数。

system_hc32f003.c文件的功能是设置系统以及总线时钟,这个里面有一个非常重要的 SystemInit()函数,这个函数在我们系统启动的时候都会调用,用来设置系统的整个时钟系统。

hc32f003.h文件里面非常多的结构体以及宏定义。这个文件里面主要是系统寄存器定义的声明以及封装内存操作,对于这里是怎样声明以及怎样将内存操作封装起来的,我们在后面再做讲解。

ddl.c和ddl.h文件中包含了中断函数的定义、延时函数、清内存函数和格式化打印输出的相关函数。


 楼主| coshi 发表于 2021-8-7 16:06 | 显示全部楼层
加入头文件
打开之前建立的mdk_test工程。
点击“魔术棒”,弹出设置里C/C++项,选Inlcude Paths项后面的“…”进行设置,操作如下图所示:
watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dpbGxPa2F5,size_16,color_FFFFFF,t_70.jpg
在弹出设置框中按下图步骤进行操作,选中common文件夹。
watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dpbGxPa2F5,size_16,color_FFFFFF,t_70.jpg
重复上面的设置步骤加入inc文件夹和source文件夹。头文件全部加好后如下图所示:
watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dpbGxPa2F5,size_16,color_FFFFFF,t_70.jpg

 楼主| coshi 发表于 2021-8-7 16:07 | 显示全部楼层

头文件路径指好后,在项目中加入项目使用的文件。
Step1: 右键点击Target 1,在弹出框中选Add Group…,生成New Group文件夹

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dpbGxPa2F5,size_16,color_FFFFFF,t_70.jpg
2020060421405316.png


 楼主| coshi 发表于 2021-8-7 16:07 | 显示全部楼层
Step2: 把New Group文件夹改名为common。双击common文件夹,在弹出框中选中common文件夹中的startup_hc32f003.s和ststem_hc32f003.c文件。
watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dpbGxPa2F5,size_16,color_FFFFFF,t_70.jpg
 楼主| coshi 发表于 2021-8-7 16:08 | 显示全部楼层
Step3: 重复Step1和Step2步骤新建driver文件夹并向其文件夹内加入clk.c和ddl.c文件。并把Source Group 1文件夹名字改为source。这步完成后如下图
watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dpbGxPa2F5,size_16,color_FFFFFF,t_70.jpg
 楼主| coshi 发表于 2021-8-7 16:09 | 显示全部楼层
Step4: 单击Target 1 将其名字改为mdk_test
watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dpbGxPa2F5,size_16,color_FFFFFF,t_70.jpg
 楼主| coshi 发表于 2021-8-7 16:10 | 显示全部楼层
Step5: 在工具栏上先新建文件,并把文件存在source文件夹中,文件名存为main.c。在工程中把按Step2步骤把main.c文件加入到source文件夹中,此步骤完成后如下图
watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dpbGxPa2F5,size_16,color_FFFFFF,t_70.jpg
 楼主| coshi 发表于 2021-8-7 16:11 | 显示全部楼层
Step6: 在main.c文件中输入如下代码。

#include "ddl.h"

int32_t main ()
{
  ;
}


 楼主| coshi 发表于 2021-8-7 16:13 | 显示全部楼层

Step7:点击工具栏上的build按钮进行编译
watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dpbGxPa2F5,size_16,color_FFFFFF,t_70.jpg
编译成功后在编译输出窗口我们会看到目前的项目,0错误,0警告。
20200604214302612.png

经过以上的步骤操作一个新的可以编译的工程我们就建好了。后面就可以在这个工程的基础上进行不同项目的开发。


gwsan 发表于 2021-9-6 12:16 | 显示全部楼层
头文件不是自己写的吧
zljiu 发表于 2021-9-6 12:16 | 显示全部楼层
可以用现成的头文件
cyclefly 发表于 2021-9-6 13:21 | 显示全部楼层
挺好,整理成PDF就完美了
qgbgzp 发表于 2021-12-31 10:51 | 显示全部楼层
挺好的,适合像我这种刚转到32机的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

96

主题

3310

帖子

4

粉丝
快速回复 返回顶部 返回列表