给小熊派做一个可视化的Keil工程配置模板(这个功能真香!)

简介: 给小熊派做一个可视化的Keil工程配置模板(这个功能真香!)

   之前用Keil MDK做项目的时候有个想法:是否能将宏定义做成一个可视化的呢?这样我就不用直接去修改对应的.h或者.c文件了,也能减少手误导致工程编译出问题。另外,当程序需要改某个参数时,也可以告诉那些看不懂程序的人帮忙配置,增加程序的维护性。很荣幸的是,Keil MDK就支持这样的方法!那么如何来实现呢?搜索官方文档里的Configuration Wizard

640.png

640.png

    这个文档描述得非常详细,也提供了一个配置模板,我们只需要照着文档描述写好相应的格式即可生成一个图形化的配置界面。(注意:Keil并没有那么智能,写完这个模板它并不能立马自动匹配到,需要重新关掉Keil工程再开才能加载成图形配置模板,然后才能够实现即时修改即时响应,这点很多写文章的作者并没有告诉读者这个坑!!!),这里我用的是KeilV5.25的版本,不清楚后面的新版本是否改善了这个问题。


   接下来我们新建一个.h或者一个.c文件,然后在.h文件或者.c文件的开头加入:

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

在文件的结尾加入:

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

   然后重新关掉工程,再继续打开工程,再打开这个文件就可以看到下面这样的效果:

640.png

   接下来,我们就需要在这对配置向导的开头-结尾中添加我们的配置方法,以下是配置方法的语法规则:

640.png

   接下来我们根据以上官方网站提供的配置模板以及参数就可以快速的修改出我们想要的配置模板,这里面提供了单选框、复选框、字符串、参数范围定义等多种功能的配置方案。这里我以小熊派为例做的一个配置模板:

// <<< Use Configuration Wizard in Context Menu >>>
#ifndef __BEARPI_CONFIG_H
#define __BEARPI_CONFIG_H
//是否支持调试使能
// <c1> Debug Config
// <i> Debug Config generation
#define _USE_DEBUG
// </c>
//小熊派开发配置,选择E53传感器模组以及IoT通信模组
// <h>BearPi Config
//  <o>Select E53 Module
//   <i> Default: E53_IA1
//  <0=>E53_IA1
//  <1=>E53_SC1
//   <2=>E53_SC2
//   <3=>E53_SF1
//   <4=>E53_IS1
//  <5=>E53_ST1
#define BEARPI_E53_MODULE 0
//  <o>Select WAN Module
//   <i> Default: E53_IA1
//  <0=>NB-IoT&Card-NB35-A
//  <1=>WIFI-WIFI8266
//   <2=>2G-G26
//   <3=>HiLink-HiLink710
#define BEARPI_WAN_MODULE 0
// </h>
//是否支持调试LED
// <c1> Support Debug Led
// <i> Use PC13 debug led
#define _SUPPORT_DEBUG_LED
// </c>
//是否支持键盘
// <c1> Support KeyBoard
// <i> Support using keyboard
#define _SUPPORT_KEYBOARD
// </c>
//是否支持AT24C02
// <c1> Support AT24C02
// <i> Support using AT24C02 to store module parameters
#define _SUPPORT_AT24C02
// </c>
//是否支持W25Q64
// <c1> Support W25Q64
// <i> Support using SPIFLASH to store module parameters
//#define _SUPPORT_W25Q64
// </c>
//是否支持SD卡
// <c1> Support SDCard
// <i> Support using SPIFLASH to store module parameters
#define _SUPPORT_SDCARD
// </c>
//版本信息
// <s>Version information
//  <i>version 
#define BEARPI_CONFIG_VERSION "1.0.0"
#endif //__BEARPI_CONFIG_H
// <<< end of configuration section >>>

最终效果如下:

640.png

   当我们选择了对应的功能以后,宏定义就会自动的为我们修改对应的参数,例如修改版本信息:

20220326

640.png

我们可以看到.h文件里的这个宏定义已经修改了这个值:

640.png

Keil MDK提供的这个功能真的是单片机工程师的福音啊!!!!

参考资料

[1]https://www.keil.com/support/man/docs/uv4cl/uv4cl_ut_configwizard.htm

[2]https://blog.csdn.net/qq_15647227/article/details/89297207

往期精彩

Keil MDK软件包(pack)下载的几种方法


手把手教你在Keil MDK中使用GCC编译器工具链


分享一个在Keil开发环境中配置代码格式化工具Astyle(美化代码风格)


Keil MDK 将升级为 Keil Studio,你想要的黑色主题来了,附手把手使用教程


Keil MDK的一些推荐功能(编码格式、自动保存、代码提示、动态语法检查、多核编译)

目录
相关文章
|
JavaScript 前端开发 程序员
用Unity不会几个插件怎么能行?Unity各类插件及教程推荐
话说工欲善其事必先利其器,程序员总是有一些开发利器,而对于Unity3D开发程序员来说,插件就是非常好用的利器。 今天博主,就将比较好用的插件推荐给大家,希望一起学习品鉴。
|
3月前
|
JSON 数据格式
【Axure高手秘籍】掌握这招,让你的原型设计效率飙升!——元件库导入与使用教程及主流资源下载全解析
【8月更文挑战第20天】Axure RP是界面设计与交互原型制作的强大工具。掌握元件库能显著提升设计效率。元件库包含预设UI元素如按钮、表单等,可直接拖放构建布局。在Axure RP中,通过“元件”选项下的“库”可访问并导入新元件库。导入后,轻松拖放元件至画布调整,甚至自定义样式和交互。利用脚本还能模拟真实交互效果,如按钮点击反馈。推荐资源包括Axure Marketplace、UIZilla等,助力高效设计。
79 0
|
4月前
|
小程序
手机日记本小程序模板源码
手机日记本小程序模板源码
121 4
|
6月前
|
数据安全/隐私保护
产品入门第二讲:Axure产品元件库的使用
产品入门第二讲:Axure产品元件库的使用
|
6月前
|
JSON 定位技术 开发工具
基于Python开发的高德地图+58租房系统(源码+可执行程序+程序配置说明书+程序使用说明书)
基于Python开发的高德地图+58租房系统(源码+可执行程序+程序配置说明书+程序使用说明书)
125 0
|
编解码 芯片
实战贴:开源GUI STemWin在小熊派上的移植(显示很漂亮、很细腻,棒!)
实战贴:开源GUI STemWin在小熊派上的移植(显示很漂亮、很细腻,棒!)
408 2
|
编解码 自然语言处理 编译器
LVGL V8.2字符串显示在Keil MDK上需要注意的事项(以小熊派为例)
LVGL V8.2字符串显示在Keil MDK上需要注意的事项(以小熊派为例)
249 0
|
存储 数据可视化 搜索推荐
|
JSON 前端开发 API
接口管理工具YApi怎么用?颜值高、易管理、超好用
接口管理工具YApi怎么用?颜值高、易管理、超好用
|
数据可视化 搜索推荐 API
如何在 FlowUs、Notion笔记软件使用白板和代码绘制流程图(二)
关于如何在 FlowUs 这样的效率工具中如何使用流程图的话题,上次我们在文章中推荐了 ProcessOn 和 Draw.io 这两款工具。具体可以阅读原文。 除了专门的流程图工具,还有其他解决方案吗? 1. 使用白板工具绘制流程图或者思维导图。 2. 使用代码绘制流程图
633 0