如何编写MDK中Configration wizard配置文件

stm32 专栏收录该内容
9 篇文章 1 订阅

前言:
  在写程序时经常会进行一些配置,比如开启关闭某些功能、修改一些常量等,会反复去修改配置文件。实际上MKD可以将其变为配置界面,这样在修改时更加直观、方便。只需要根据configuration wizard的格式来编写我们的配置文件即可。
在这里插入图片描述

类似于上图这样,可以直接修改后面的值或者勾选使能匡,就能实现对函数中的参数或者宏定义进行修改,这样做的目的就是比较直观,简单明了,省的去看代码里面的逻辑关系。
  MDK在编译时 是怎们知道这是一个配置文件的呢?就需要用到文件的格式,开头和结尾。// <<< Use Configuration Wizard in Context Menu >>>// <<< end of configuration section >>>
至于为什么每个命令的前面都要用//屏蔽,我也不知道,大家都是这样做的,否则会出错。

1:开头和结尾,我们需要编写的配置都在这两个字符段之间

#ifndef  __clk_H
#define  __clk_H
#ifdef __cplusplus
 extern "C" {
#endif    
#include "main.h"       
// <<< Use Configuration Wizard in Context Menu >>>


// <<< end of configuration section >>>        
#ifdef __cplusplus
}
#endif
#endif

此时里面没有添加其他信息,但能看到这个框已经出现了。
在这里插入图片描述

2:命令字
标题命令字 <h></h> <h>和</h>必须成对出现,<h>表示一个段落(组)开始,</h>表示段落(组)结束,如果只有<h>没有</h>系统就会报错。

// <<< Use Configuration Wizard in Context Menu >>
//<h>第一个标题框
         
//</h>          
// <<< end of configuration section >>>

可以看到添加了标题框后,出现了一个可以选择的控件。
在这里插入图片描述
比如你的代码中的功能有几个大的模块,你需要单独进行开关宏定义控制,或者使能控制,就可以使用多个<h></h> 来进行控制。例如:

// <<< Use Configuration Wizard in Context Menu >>>

//<h>第一个标题框         
//</h>     

//<h>第二个标题框         
//</h> 
//<h>第三个标题框         
//</h> 
//<h>第四个标题框         
//</h> 
//<h>第五个标题框         
//</h>      
     
     
// <<< end of configuration section >>>

在这里插入图片描述

3:使能组<e></e>
<h>类似,但是<e>确是有更大的功能,Enable。

// <<< Use Configuration Wizard in Context Menu >>>
//<h>第一个标题框   

    //<e>使能框勾选1
    #define XXXX_EN1  1     
    //</e>     
    //<e>使能框勾选2  
    #define XXXX_EN1  1     
    //</e>          
//</h>     
//<h>第二个标题框         
//</h> 
//<h>第三个标题框         
//</h> 
//<h>第四个标题框         
//</h> 
//<h>第五个标题框         
//</h>      
     
     
// <<< end of configuration section >>>

在这里插入图片描述
这个命令我们可以用于设置某个宏定义是否打开,在程序中我们把某段代码用条件语句进行屏蔽,待调试需要时在打开。
<e>命令还可以对某个数的某个bit位进行设置,通过<e.n> 命令,n表示第几位。
举个例子:

//<e0.7> 配置该config_bit的第七bit位
#define config_bit = 0x01
//</e>

<e0.7> 表示配置该config_bit的第七bit位,徐如果勾选这个使能,就把第七位置1,(从o开始计算)。理论上没有勾选时的数据就为0x01,勾选后就为0x81。我们来验证下结果:
勾选后:
在这里插入图片描述
在返回代码处,看看数值是否被更改了:
在这里插入图片描述
可以看到数值已经被更改了,说明我们得设置成功了。<e>的原型为<e#1.#2>其中#1代表第几个数据(从0开始),#2代表此数据的哪个位(从0开始)。
例如:

<e1.7>改变两个数值的第七位bit
#define INIT_CONFIG (0x00,0x01)
</e>

<e1.7>就是指更改数值0x01的第七位bit(从零开始)

4:<i>的使用
标注提示信息使用。提示上一个标签有关信息。

//<e0.7> 配置该config_bit的第七bit位
//<i> default 0x01
#define config_bit = 0x81
//</e>

5:<o>的使用
主要是修改一个数的数值,同时也可以向<q>一样修改数据的某个位

//<o>试剂类型
//<i>1:P2Y12    2:阿司匹林
//<1=>1 <2=>2 
#define CARD_TYPE	2

在这里插入图片描述
6:<q>的使用.主要使用<q#1.#2> #1和#2代表的意义和<e#1.#2>的一样。
通过复选框设置数字的位值.

<q0.1> value bit config
#define VALUE_IS 0x00

在这里插入图片描述
此时在代码中的数值也被改变了:
在这里插入图片描述
7: <c> 和</c>
<c></c>是配套使用的。其功能产生一个复选框,选中复选框则使代码使能,否则被注释,而<!c> </c>正好相反。

以上命令的基本运用就是这样,需要更详细的讲解可以去官网。对于整个配置表的编写,整个个流程命令都是综合运用的,结合在一起。

  • 0
    点赞
  • 0
    评论
  • 1
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值