日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

html自动生成工具_关于STM32代码自动生成的工具的进度....

發(fā)布時間:2024/9/15 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 html自动生成工具_关于STM32代码自动生成的工具的进度.... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前情提要: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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。