您当前的位置: 首页 >  ar

仙剑情缘

暂无认证

  • 0浏览

    0关注

    333博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

keil的Use Configuration Wizard in Context Menu功能

仙剑情缘 发布时间:2019-05-10 15:44:04 ,浏览量:0

  • 目的

            为了能快速地实现宏定义的可视化管理及使用其修改数值项

  • 以下使用nrf52832为例来新建工程进行演示
step 1:

        新建一个工程,工程名为test,然后点保存

step 2:

     选择nRF52832_xxAA设备类型,然后点OK键确定

step 3:

          选择勾上CORE 5.0.2和Startup这两个选项,然后点击OK键确定

step 4:

        新键一个main.c文件并加入到工程,加入nrf_52.h头文件,并输入以下代码后编译

step 5:

     新建一个sdk_config.h,并加入工程,然后输入以下内容

  • 现在演示Use Configuration Wizard in Context Menu这个功能
      step 1:

         在sdk_conf.h的文件头部加入// >\n和文件的未尾加

      入// >这两行,来告诉keil这是一个配置向导菜单的开始与结束声明

step 2:

          关闭工程,然后再次打开工程,sdk_config.h中在keil下方会多次一个Configuration Wizard选项,点击此选项

step 3:

   1. 上面配置内没有任何东西,现在来讨论这对标签,这对标签是声明一个标题头,跟随在后面的内容将会

    被当成标题头显示在配置选项卡中,例如声明一个TEST_HEAD,在sdk_config.h中的// >\n的后面输入以下内容后保存

 #ifndef SDK_CONFIG_H #define SDK_CONFIG_H

// >\n

// TEST_HEAD

//

// >

#endif                         

             配置选项卡中将会多出一个标题头TEST_HEAD

2.和这个标签是一个单选开关,作用是开启或关闭一位选项,跟随在后面的内容将作为单选开关的描述内容,

例如,在TEST_HEAD标题组中输入以下内容后保存

#ifndef SDK_CONFIG_H #define SDK_CONFIG_H

// >\n

// TEST_HEAD

// TEST_ENABLE #define TEST_BIT0           1 //

// // >

#endif                

                               TEST_ENABLE后面将会多出一个单选框

3.如果开启的值不是1和0,而是其它的位,假如要开启或关闭第2位,那么此时使用这组标签,其中n表示第几位,

例如,在sdk_config.h中输入以下内容后保存

  

#ifndef SDK_CONFIG_H #define SDK_CONFIG_H

// >\n

// TEST_HEAD

// TEST_ENABLE #define TEST_BIT0           1 //

// TEST_ENABLE_BIT2 #define TEST_BIT2           4 // // // >

#endif                         

          TEST_ENABLE_BIT2多出一个单选框,TEST_BIT2的取值是0和4

4. 这个标签是信息提示,使用这个标签,当鼠标停留在当前的条目的时候可以显示提示信息,提示后面的内容,这个标

 签是单独的一个标签,不是成对出现的,例如,输入以下内容后保存

#ifndef SDK_CONFIG_H #define SDK_CONFIG_H

// >\n

// TEST_HEAD

// TEST_ENABLE #define TEST_BIT0           1 //

// TEST_ENABLE_BIT2// this is enable bit 2 #define TEST_BIT2           4 // // // >

#endif           

          当鼠标放在TEST_ENABLE_BIT2上后会弹出一个提示信息

5. 这个标签是单选不分段标签,这个标签也是单独的,没有成对出现,这个和标签有点相似,首先都是单选框标

 签,不同的是不分段,是可以分段,例如输入以下内容后保存

#ifndef SDK_CONFIG_H #define SDK_CONFIG_H

// >\n

// TEST_HEAD

// TEST_ENABLE #define TEST_BIT0           1 //

// TEST_ENABLE_BIT2 // this is enable bit 2  #define TEST_BIT2           4 //

// TEST_SINGLE_ENALBE #define TEST_SINGLE     1 // // >

#endif      

      TEST_SINGLE_ENALBE在TEST_ENABLE_BIT2的分段下面,TEST_SINGLE_ENALBE下没有任何分组

6. 如果不分段单选标签要指定某一位,那么使用来定义,n表示第几位,例如要开启或关闭第7位,则输入以下内容后

 保存

#ifndef SDK_CONFIG_H #define SDK_CONFIG_H

// >\n

// TEST_HEAD

// TEST_ENABLE #define TEST_BIT0           1 //

// TEST_ENABLE_BIT2 // this is enable bit 2  #define TEST_BIT2           4 //

// TEST_SINGLE_ENALBE #define TEST_SINGLE     1// TEST_SINGLE_BIT7_ENALBE #define TEST_SINGLE_BIT7 0x80 // // >

#endif             TEST_SINGLE_BIT7_ENALBE单选框的开启或关闭,使TEST_SINGLE_BIT7 的取值是0和0x80两个值

7. 这个标签是输入或选择数值,例如,输入以下内容后保存

#ifndef SDK_CONFIG_H #define SDK_CONFIG_H

// >\n

// TEST_HEAD

// TEST_ENABLE #define TEST_BIT0           1 //

// TEST_ENABLE_BIT2 // this is enable bit 2  #define TEST_BIT2           4 //

// TEST_SINGLE_ENALBE #define TEST_SINGLE     1 // TEST_SINGLE_BIT7_ENALBE #define TEST_SINGLE_BIT7 0x80// INPUT_A_NUMBER #define TEST_NUMBER   0X28 // // >

#endif        

                      INPUT_A_NUMBER后面可以输入想要的数值

8.假如输入的值要限定范围,则要使用标签来修饰,例如限定的输入是0到16之间,则在sdk_config.h中输入

以下内容后保存

#ifndef SDK_CONFIG_H #define SDK_CONFIG_H

// >\n

// TEST_HEAD

// TEST_ENABLE #define TEST_BIT0           1 //

// TEST_ENABLE_BIT2 // this is enable bit 2  #define TEST_BIT2           4 //

// TEST_SINGLE_ENALBE #define TEST_SINGLE     1 // TEST_SINGLE_BIT7_ENALBE #define TEST_SINGLE_BIT7 0x80// INPUT_A_NUMBER // #define TEST_NUMBER   0x10 // // >

#endif         

当INPUT_A_NUMBER后面输入的值不在0~16之间,则会自动转换成最小或最大值

9.如果输入的值是某个数的倍数,则可以使用这种标签形式,min为最小值,max为最大值,step为步进数,

例如,输入以下内容后保存

#ifndef SDK_CONFIG_H #define SDK_CONFIG_H

// >\n

// TEST_HEAD

// TEST_ENABLE #define TEST_BIT0           1 //

// TEST_ENABLE_BIT2 // this is enable bit 2  #define TEST_BIT2           4 //

// TEST_SINGLE_ENALBE #define TEST_SINGLE     1 // TEST_SINGLE_BIT7_ENALBE #define TEST_SINGLE_BIT7 0x80// INPUT_A_NUMBER // #define TEST_NUMBER   0x02 // // >

#endif                      

          实例中INPUT_A_NUMBER输入的值只能是2的倍数才有效

10. 如何使标签的值做成下拉列表呢,需要使用,...之类的标签来实现,例如,输入以下内容后保存

#ifndef SDK_CONFIG_H #define SDK_CONFIG_H

// >\n

// TEST_HEAD

// TEST_ENABLE #define TEST_BIT0           1 //

// TEST_ENABLE_BIT2 // this is enable bit 2  #define TEST_BIT2           4 //

// TEST_SINGLE_ENALBE #define TEST_SINGLE     1 // TEST_SINGLE_BIT7_ENALBE #define TEST_SINGLE_BIT7 0x80 // INPUT_A_NUMBER // #define TEST_NUMBER   0x02

// TEST_LIST_TABLE //      0 //    1 //   2 #deinf TEST_LIST_NUMBER 0 // // >

#endif               

       实例中TEST_LIST_TABLE后面将有3个选项的下拉列表可选择

11.如果下拉列表控制指定的某一位,则需要使用 0 1等形式,例如,输入以下内容后保存

#ifndef SDK_CONFIG_H #define SDK_CONFIG_H

// >\n

// TEST_HEAD

// TEST_ENABLE #define TEST_BIT0           1 //

// TEST_ENABLE_BIT2 // this is enable bit 2  #define TEST_BIT2           4 //

// TEST_SINGLE_ENALBE #define TEST_SINGLE     1 // TEST_SINGLE_BIT7_ENALBE #define TEST_SINGLE_BIT7 0x80 // INPUT_A_NUMBER // #define TEST_NUMBER   0x02

// TEST_LIST_TABLE //    0 //   1 //  2 #deinf TEST_LIST_NUMBER 0

//         TEST_LIST_TABLE_LIMIT

//         0       1

#define TEST_LIST_NUMBER_LIMIT 0x00

// // >

#endif

     TEST_LIST_TABLE_LIMIT如果选择1,则TEST_LIST_NUMBER_LIMIT值变成0x80

12.如果是一个32位的值只需要8位,那么使用 0 1 2的形式实现,例如,输入以下内容

后保存

#ifndef SDK_CONFIG_H #define SDK_CONFIG_H

// >\n

// TEST_HEAD

// TEST_ENABLE #define TEST_BIT0           1 //

// TEST_ENABLE_BIT2 // this is enable bit 2  #define TEST_BIT2           4 //

// TEST_SINGLE_ENALBE #define TEST_SINGLE     1 // TEST_SINGLE_BIT7_ENALBE #define TEST_SINGLE_BIT7 0x80 // INPUT_A_NUMBER // #define TEST_NUMBER   0x02

// TEST_LIST_TABLE //    0 //   1 //  2 #deinf TEST_LIST_NUMBER 0

//         TEST_LIST_TABLE_LIMIT

//         0       1

#define TEST_LIST_NUMBER_LIMIT 0x00

//         TEST_BIT0_BIT7 

//         1       2   3 #define  TEST_BIT0_BIT7_NUMBER  255

// // >

#endif

            TEST_BIT0_BIT7 的3个选项可改变TEST_BIT0_BIT7_NUMBER的值

13. 输入字符串,使用标签,例如,输入以下内容后保存

#ifndef SDK_CONFIG_H #define SDK_CONFIG_H

// >\n

// TEST_HEAD

// TEST_ENABLE #define TEST_BIT0           1 //

// TEST_ENABLE_BIT2 // this is enable bit 2  #define TEST_BIT2           4 //

// TEST_SINGLE_ENALBE #define TEST_SINGLE     1 // TEST_SINGLE_BIT7_ENALBE #define TEST_SINGLE_BIT7 0x80 // INPUT_A_NUMBER // #define TEST_NUMBER   0x02

// TEST_LIST_TABLE //    0 //   1 //  2 #deinf TEST_LIST_NUMBER 0

//         TEST_LIST_TABLE_LIMIT

//         0       1

#define TEST_LIST_NUMBER_LIMIT 0x00 //         TEST_BIT0_BIT7 

//         1       2   3 #define  TEST_BIT0_BIT7_NUMBER  255//  TEST_STRING #define STRING_VAL  "test"

// // >

#endif

       TEST_STRING输入的字串将会修改到STRING_VAL中定义的值  

14. 如何限定字串的长度呢,使用的标签形式来实现,例如,输入以下内容后保存

#ifndef SDK_CONFIG_H #define SDK_CONFIG_H

// >\n

// TEST_HEAD

// TEST_ENABLE #define TEST_BIT0           1 //

// TEST_ENABLE_BIT2 // this is enable bit 2  #define TEST_BIT2           4 //

// TEST_SINGLE_ENALBE #define TEST_SINGLE     1 // TEST_SINGLE_BIT7_ENALBE #define TEST_SINGLE_BIT7 0x80 // INPUT_A_NUMBER // #define TEST_NUMBER   0x02

// TEST_LIST_TABLE //    0 //   1 //  2 #deinf TEST_LIST_NUMBER 0

//         TEST_LIST_TABLE_LIMIT

//         0       1

#define TEST_LIST_NUMBER_LIMIT 0x00 //         TEST_BIT0_BIT7 

//         1       2   3 #define  TEST_BIT0_BIT7_NUMBER  255 //  TEST_STRING #define STRING_VAL  "test"//  TEST_STRING_LIMIT #define STRING_LIMIT_VAL  "Hello" // // >

#endif

               TEST_STRING_LIMIT后面输入的值将限定5个字符长度

 

关注
打赏
1658017818
查看更多评论
立即登录/注册

微信扫码登录

0.0391s