加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專(zhuān)業(yè)用戶(hù)
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入
  • 正文
    • 一、MDK 的Configuration Wizard
    • 二、如何在 MDK 中啟用Configuration Wizard
    • 三、Configuration Wizard的語(yǔ)法規(guī)則
    • 四、結(jié)語(yǔ)
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

教你使用 MDK(keil)實(shí)現(xiàn)可視化配置向?qū)?/h1>

2023/11/23
8517
閱讀需 10 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

最近在開(kāi)發(fā) BMS 項(xiàng)目中,由于需要兼容很多電芯參數(shù)模型,同時(shí)還需要軟件算法可以應(yīng)對(duì)不同電芯以及應(yīng)用場(chǎng)景,給用戶(hù)提供高可配置型的功能,因此提供一個(gè)好的界面,讓用戶(hù)可以快速的配置基本模型和算法參數(shù)變得非常重要,今天來(lái)介紹一下我用 MDK 實(shí)現(xiàn)的方法。

一、MDK 的Configuration Wizard

Configuration Wizard翻譯成中文可以叫做配置向?qū)В怯梢恍┨厥庖?guī)則的語(yǔ)法構(gòu)成的,可以解釋成圖形化的配置菜單,在圖形化界面中,可以很清晰的配置程序相關(guān)參數(shù),而不需要在具體的代碼中修改。

Configuration Wizard有點(diǎn)類(lèi)似于Markdown原理,可以實(shí)現(xiàn)所見(jiàn)即所寫(xiě),它采用注釋的形式來(lái)構(gòu)建菜單,在 MDK 中,它支持匯編、C/C++以及初始化文件(如.s文件)。如下圖,先展示一張直觀的配置界面,再?gòu)脑创a上來(lái)詳細(xì)地介紹它的實(shí)現(xiàn)方法。

實(shí)現(xiàn)上圖的源碼:

/***************************************************                                    PACK 參數(shù)***************************************************/#if (1) /**Pack Information*/// <h>  Pack Infomation /************BATTERY_PACK_INFO*****************/// <o> Pack Cell Series Counts <4=> 4 <5=> 5 <6=> 6 <7=> 7 <8=> 8 <9=> 9 <10=> 10#define?PACK_SERIES_COUNT??????(10)?//Pack串?dāng)?shù)=電壓采樣點(diǎn)數(shù)// <o> Pack Cell Parallel Counts <1=> 1 <2=> 2  <3=> 3 <4=> 4#define?NUM_PARALLEL???????????(2)??//Pack并數(shù)// <o> Pack Temp Sensors Counts <1=> 1 <2=> 2  #define?NUM_CELL_TEMP_SENSORS? (2)??//電芯溫度采樣點(diǎn)數(shù)
/********CURRENT SENSOR TYPE******************/// <o> Pack Current Sensors Resister(mR)  <1=> 1 <2=> 2  <4=> 4 <8=> 8#define DIVER_RESISTER         (4)  //電流采樣電阻傳感器
/*********AFE TYPE***************************/#define?AFE_TYPE???????????????(AFE_CG861XX_TYPE)?//當(dāng)前PCB使用的AFE的型號(hào)//?</h>??

二、如何在 MDK 中啟用Configuration Wizard

一般情況下,我們?cè)?c或.h文件中的頭部,使用注釋的方式增加如下代碼,就可以使用配置向?qū)Я耍?dāng)然,我們只需要保證這段開(kāi)啟向?qū)У淖⑨屨Z(yǔ)句在代碼文件的前 100 行之內(nèi)就可以。

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

下面的注釋代碼可以告訴解釋器,結(jié)束配置向?qū)У慕忉專(zhuān)贿^(guò)這不是必須的。

// <<< end of configuration section >>>

在前面的示例代碼中,配置向?qū)覍?xiě)在 bms_config.h中,當(dāng)我們添加了以上注釋代碼啟用配置向?qū)Ш螅枰匦麓蜷_(kāi)一下 bms_config.h文件,這時(shí),在文件的左下角就會(huì)出現(xiàn)Text EditorConfiguration Wizard兩個(gè)界面選項(xiàng),它們分別對(duì)應(yīng)程序源碼和配置界面。

三、Configuration Wizard的語(yǔ)法規(guī)則

大家如果有使用過(guò)HTML語(yǔ)法,這里就非常容易理解了,它和 HTML一樣,使用成對(duì)的標(biāo)簽來(lái)代表不同的功能,如<*>和</*>,其中 * 代表不同的功能標(biāo)簽。

標(biāo)簽h

通過(guò)使用和來(lái)設(shè)置一個(gè)分組,它可以在配置向?qū)е羞M(jìn)行折疊。

// <h> 分組標(biāo)題// …// </h>

?

標(biāo)簽i

使用+提示內(nèi)容來(lái)設(shè)置對(duì)上一個(gè)配置項(xiàng)的提示,可以配置多行。

// <i> 提示內(nèi)容 如 Select the cell type for calcu the soc

當(dāng)鼠標(biāo)移動(dòng)到配置項(xiàng)時(shí)顯示提示內(nèi)容。

標(biāo)簽e

使用和來(lái)設(shè)置一個(gè)分組,該類(lèi)分組可以整體被禁止或使能,也可以在配置向?qū)е羞M(jìn)行折疊。

當(dāng)禁止時(shí)無(wú)法修改配置該組內(nèi)容,組內(nèi)文字變灰暗;反之即可修改內(nèi)容。

這里對(duì)于,還有一個(gè)規(guī)則<e1.2>,這種e1.2表示修改該配置項(xiàng)下面出現(xiàn)的第2個(gè)配置參數(shù)的第2位(0位開(kāi)始),它只能修改一個(gè)位,可以嵌套使用。

// <e> 使能分組標(biāo)題// …// </e>

這里看一個(gè)折疊的例子,其中也包含了 o 和 e 標(biāo)簽作用于參數(shù)的位域的操作。

//   <e1.13> Enable Chip Select 0 (CSR0)//     <e1.5>      WSE: Enable Wait State Generation//       <o1.2..4>   NWS: Number of Standard Wait States <1-8><#-1>//     </e>//     <o1.9..11>  TDF: Data Float Output Time <0-7>//                 <i> Number of Cycles Added after the Transfer//   </e>#define A1 (0xFFE00000)#define A2 (0x010024A9)   // EBI_CSR0: Flash

標(biāo)簽o

使用標(biāo)簽o可以在配置界面添加一個(gè)數(shù)值修改框或使能框(只修改一個(gè)位時(shí)),它與標(biāo)簽e同樣還有添加規(guī)則<o1.2>和<o1.2..3>。比如表示修改該配置項(xiàng)下面出現(xiàn)的第1個(gè)配置參數(shù)的第1位,它只修改一個(gè)位;比如表示修改該配置項(xiàng)下面出現(xiàn)的第4個(gè)配置參數(shù)的第2到5位,它可以修改多個(gè)位。

// <o> 標(biāo)題內(nèi)容

另外,標(biāo)簽 o 還可以設(shè)置修改范圍和步進(jìn),其中步進(jìn)可以省略。

// <o> 標(biāo)題內(nèi)容 <最小值-最大值:步進(jìn)>

如果想使用下拉菜單的話,可以在標(biāo)簽o的后面增加如下的選項(xiàng)內(nèi)容。

// <o> 標(biāo)題內(nèi)容 <0=> 選項(xiàng)0  <1=> 選項(xiàng)1  <n=> 選項(xiàng)n

標(biāo)簽q

它標(biāo)簽o差不多,不過(guò)它只能修改數(shù)值的一個(gè)位,不能修改多個(gè)位,支持<q1.2>。

// <q> 標(biāo)題內(nèi)容

標(biāo)簽c

使用標(biāo)簽c可以在配置界面添加一個(gè)使能框注釋或取消注釋代碼內(nèi)容,其實(shí)就是用來(lái)操作是否將宏定義內(nèi)容注釋掉。

// <c>//#define DEBUG_FLAG// </c>
// <!c>#define DEBUG_FLAG// </c>

四、結(jié)語(yǔ)

這里介紹了MDK中的Configuration Wizard 主要用法。掌握了配置向?qū)н@個(gè)方法,并不能提升編程效率,但對(duì)于代碼的維護(hù)非常有益。另外,當(dāng)我們做一些例程或者評(píng)估板的算法代碼時(shí),希望能夠給用戶(hù)提供一個(gè)比較好的參數(shù)設(shè)置界面,對(duì)于這個(gè)配置向?qū)У膽?yīng)用是再好不過(guò)了。

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
AD8276ARMZ-R7 1 Analog Devices Inc Low Power, Wide Supply Range, Low Cost Unity-Gain Difference Amplifier

ECAD模型

下載ECAD模型
$2.88 查看
D3C-2210 1 OMRON Corporation Snap Acting/Limit Switch, SPDT, Momentary, 0.1A, 30VDC, Solder Terminal, Hinge Lever Actuator, Through Hole-straight, ROHS COMPLIANT
$1.18 查看
AD698SQ 1 Rochester Electronics LLC SIGNAL CONDITIONER, CDIP24, DOUBLE WIDTH, CERAMIC, DIP-24
$121.56 查看

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

多年硬件從業(yè)經(jīng)驗(yàn),專(zhuān)注分享從研發(fā)到供應(yīng)鏈,再到精益制造過(guò)程中的經(jīng)驗(yàn)和感悟!