html自动生成工具_关于STM32代码自动生成的工具的进度....
前情提要:STM32代碼自動生成工具_本想...但是...可是...所以
首先說一下那幾天大家的反應(yīng),有的持觀望態(tài)度,畢竟STM32CUBE很香;有的很激動,期待我快點出東西;還有的很淡定,知道我在挖坑,填坑遙遙無絕期;還有的,希望我把當(dāng)前這個工具分享出來………..
兄弟,作者都已經(jīng)說了不要分享,你這樣合適嗎?
退一步,我是怎么得來這個工具的?網(wǎng)上搜的,你要是真想要……..
還要感謝一位網(wǎng)友,他分享給我一個C#的反編譯工具,直接把那個軟件反編譯成了源碼。
這種反編譯出來的源碼和作者手寫的,在實現(xiàn)方法上應(yīng)該不一樣。打個比方,源碼里我用for循環(huán)輸出10個字符串,反編譯出來的代碼,估計就是老老實實輸出10個字符串。
然后聊聊我手上現(xiàn)有的幾款代碼自動生成工具(是的,我不止有一個),當(dāng)然,CUBE就不聊了,咱目前沒這能力。
我最開始接觸到代碼自動生成,是網(wǎng)上的一些小工具,有51的,有AVR的。但51的我只在入門階段使用,AVR的我已經(jīng)很久不用了,所以印象一般。
第一次印象比較深的時候,是使用PIC單片機(就是收購ATMEL的那個土豪),他們家的編譯器有一個小插件叫:MCC,輸入一些配置,就能自動生成大部分初始化所需的代碼。很好用,當(dāng)時在工作中幫我省了很多時間。
再后來,接觸ST系列,有8有32。8分為幾個系列,有S(增強型)系列,有L(低功耗型)系列,有A(汽車級)系列,如果有遺漏歡迎補充。
我用S和L多一些,但每次配寄存器都是一個漫長的工程,拿著手冊翻阿翻。忽然有一天,我想,有沒有省力一些的方法,然后開始有目的的上網(wǎng)。找到了兩個,一個已經(jīng)分享過了,我放兩個圖:
他針對的是S系列,當(dāng)時提過,這是一個大三的學(xué)生寫的工具。功能上雖然有小bug,但已經(jīng)能替代大部分手工了(想想我大三的時候在干嘛)。
如果有懂軟件的,應(yīng)該能想想到這個工作量有多大。把每個函數(shù)翻譯成中文還好,麻煩的地方在于,要給每個函數(shù)設(shè)計一個右邊用來配置的界面,注意,是每一個!即便可以針對功能類似的函數(shù)進行分類,使用同一個頁面,但是每個參數(shù)的功能描述就足夠把人累傻。
這是個力氣活!
然后是另一個,作者的意思是這軟件只針對8的L系列,如下:
它在使用前需要導(dǎo)入完整的庫文件。導(dǎo)入后如下:
相比第一個軟件,它使用了一種很巧妙的方式。注意看這兩個圖參數(shù)的擺放位置,懂的人,從它提示要導(dǎo)入庫文件應(yīng)該就懂了。
是的,它把庫文件做了一下整理,判斷出哪部分是函數(shù)名,哪部分是參數(shù)。函數(shù)直接在上面顯示,然后把參數(shù)按順序添加到combox里。
我推測,ADC1那個參數(shù)下面應(yīng)該還有一列combox,只是屬性設(shè)置了不可見。當(dāng)有參數(shù)添加到combox里時,屬性設(shè)置為可見。
我試著導(dǎo)入S系列和32的庫,出現(xiàn)部分報錯的情況~~~
第三個就是那天你們見到的那個。說實話,這三個風(fēng)格差不多,實現(xiàn)方式也都差不太多。個人推測第一種和第三種費力一些,第二種省事一些。
另外就是STM8的庫和32的庫,在功能實現(xiàn)上,有一些設(shè)計上的差別。例如8,初始化GPIO,一行代碼就夠了:
GPIO_Init(GPIOA, GPIO_PIN_0, GPIO_MODE_IN_FL_NO_IT);但是32,需要先定義一個GPIO的結(jié)構(gòu)體,對結(jié)構(gòu)體的參數(shù)做配置,然后再通過初始化函數(shù)導(dǎo)入結(jié)構(gòu)體里配置的值:
GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;//最高輸出速率10MHzGPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;//模擬輸入GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化外設(shè)GPIOx寄存器這就導(dǎo)致,不能用第二個工具的方法直接整理庫函數(shù),還要多做一些工作。否則,我直接給你生成一行:
GPIO_Init(GPIOA, &GPIO_InitStructure);
你會一臉懵逼,然后來罵我~~~
然后說我的思路,懂我的人都知道,我懶……..
還是想以第二個工具的思路為主,但是針對GPIO初始化、TIMER初始化等功能還是要做一些功能上的增加,否則這個工具就沒什么意義了。
所以工作分兩部分,一部分是對標(biāo)準(zhǔn)外設(shè)庫進行整理;另一部分是添加初始化相關(guān)的代碼進行配合。
第一部分應(yīng)該比較省事,第二部分就是個力氣活了~~~
最后是進度………….
沒事了,散了吧~~~
不對,還有個事,誰幫我想個霸氣的名字?
總結(jié)
以上是生活随笔為你收集整理的html自动生成工具_关于STM32代码自动生成的工具的进度....的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 黑苹果关机重启后蓝牙连接不上_手机要关机
- 下一篇: 为什么Internet选择分组交换而不是