最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Ubuntu20.04 下使用STM32CubeMX+Vscode+st-flash 生成&編寫&燒錄 stm32代碼の備忘錄

2023-08-06 22:15 作者:竹之武  | 我要投稿

為了統(tǒng)一日后科研工作的環(huán)境,準(zhǔn)備將自己的STM32開發(fā)環(huán)境轉(zhuǎn)移到Ubuntu上。

經(jīng)過折騰終于完成了在STM32上點燈的偉大壯舉。(高舉雙臂歡呼)

0. 本文說明

????- 本文假設(shè)讀者對于STM32單片機有一定了解,至少了解STM32的時鐘樹(知道有這個玩意兒)和GPIO;

????- 本文介紹了在已有環(huán)境后如何完生成和燒錄代碼的步驟,不包含搭建環(huán)境的過程,可以先找別的文章,搭建好必要的環(huán)境后再來看。

1. CubeMX 生成Makefile文件

????假設(shè)你已經(jīng)安裝好了STM32CubeMX,并且安裝了對應(yīng)的手頭的芯片的庫如圖1.1所示。(我用的是STM32F407ZGT6)

圖1.1 綠框表示對應(yīng)庫已安裝,可在菜單欄Help選項中找到這個manager

????下一步開始一個工程,我選的是Home界面的 Start My project from MCU 如圖1.2 。

圖1.2?

?下一步選擇對應(yīng)芯片后開始工程,別的都可以不管先。選好后可以star一下常用芯片,便于日后接著用。

stm32! 啟動!

圖1.3 左上角輸入芯片以查找,下框里選好后右上start project

左側(cè)System Core 里面可以配置系統(tǒng)時鐘,并開啟需要的外設(shè)。我手頭上的板子有外部的時鐘原可以用,這里將其打開,如圖1.4所示。

圖1.4 將HSE和LSE從Disable改成晶振

Gpio直接從可視化芯片上勾選就行,我這里是PF9和PF10 。

圖1.5 選擇PF10 指明它是個GPIO的輸出端

然后在左側(cè)對GPIO進行設(shè)置,根據(jù)個人需要選擇GPIO的配置情況。我這里使用推挽輸出+上拉電阻。PF9、PF10 在硬件上對應(yīng)兩個LED的負(fù)極,程序控制兩個引腳輸出低電平則燈亮。如圖1.6所示,程序?qū)懗鰜碓诔跏紶顟B(tài)燈就是亮的。

圖1.6 GPIO 配置

Clock Configuration項目(這位更是重量級)

沒必要搞清楚什么鎖相環(huán)什么倍頻什么分頻.. 至少不開別的外設(shè)的情況下主頻率168M調(diào)出來就行(x)

我這邊用的是正點原子的板子,我查了下對應(yīng)例程里面關(guān)于系統(tǒng)時鐘配置的相關(guān)文件,進行了如下設(shè)置(圖1.7)。

只是點個燈的話,這些設(shè)置關(guān)系不大。如果開定時器、通訊就不一樣了。

圖1.7 小小的時鐘樹震撼

下一步,在Project Manager中選擇輸出目錄。最重要的是選擇Toolchain/IDE的時候選擇Makefile,因為之后是使用make進行編譯的。

圖1.8 導(dǎo)出代碼前的配置工作

右上Generate Code,之后可以關(guān)閉CubeMX了。


2.?Vscode 相關(guān)配置

????來到生成的工程目錄下。利用終端的 code . 指令打開vscode 。打開Makefile文件進行一波觀察。

圖2.1 Makefile

????圖中C_DEFS 和 C_INCLUDES 當(dāng)中為工程的宏定義和頭文件引用目錄,需要將其錄入到c_cpp_properties.json 文件當(dāng)中。(Ctrl+Shift+P 可以生成c/cpp 配置文件)


【.. 臥槽?B站有代碼塊了!?。窟^了幾年就是不一樣了哈x 】

注意上述代碼中includePath 和 defines 當(dāng)中的內(nèi)容。照著這個該就行,不過在Makefile當(dāng)中,這些內(nèi)容有 -I 和 -D 的前綴,改一下,然后保存起來,日后可用。配置工作到此位置(如果之后打算在線Debug,還需要配置點別的,這不是本文要討論的內(nèi)容了)


接下來是修改基于HAL庫的STM32代碼,此處不贅述?!炯僭O(shè)你是李華,你的單片機朋友想要點亮兩個LED燈,但是苦于它就是個板子寫不了代碼遲遲行不通,現(xiàn)在請你在main.c 文件當(dāng)中編寫代碼幫助它實現(xiàn)愿望。字?jǐn)?shù)要求:不少于3行(x)】

【事實上正如第1部分中配置PF9 和PF10 所言,什么都不改直接運行燈他也能亮x】



3.make 編譯與 st-flash 燒錄

在工程的目錄下的終端里輸入make進行編譯(這里假設(shè)make ,以及交叉編譯的相關(guān)工具已經(jīng)安裝好了,網(wǎng)上能找到教程),會顯示如下的一些個信息:

圖3.1 make編譯結(jié)果顯示

圖3.1的最后一行內(nèi)容告訴你,名為led2.bin的文件生成在了工程目錄下的 build子目錄中。

cd build 進入這個目錄。

輸入以下命令,完成通過stlink的燒錄工作。

圖片3.2 st-flash 進行程序燒寫結(jié)果

完成后應(yīng)該能看到stm32板子上的燈亮了?!纠钊A完成了單片機朋友的委托 :) 】


以上是全部的過程了,中間可能會涉及到很多工具的安裝,包括VSCODE當(dāng)中需要使用的Cmake等插件、在Linux上編譯ARM程序的交叉編譯器之類,本文沒有涉及(反復(fù)強調(diào)233)。這些在讀者嘗試“在Ubuntu系統(tǒng)下搭建STM32 開發(fā)環(huán)境”的過程中,都是容易查詢到的。筆者在自己嘗試搭建的過程中苦于沒有教程能夠指出東西都搭建完了之后怎么用,故作此篇,以饗后人(大噓)。

或許之后研究研究怎么配置在線Debug。

Ubuntu20.04 下使用STM32CubeMX+Vscode+st-flash 生成&編寫&燒錄 stm32代碼の備忘錄的評論 (共 條)

分享到微博請遵守國家法律
潼关县| 花莲市| 旅游| 昌江| 彭州市| 平遥县| 睢宁县| 泗阳县| 玛纳斯县| 鄂伦春自治旗| 右玉县| 茌平县| 郎溪县| 通城县| 安丘市| 乌拉特中旗| 门源| 香河县| 吴川市| 泾阳县| 龙江县| 石景山区| 上蔡县| 武安市| 泾川县| 玉树县| 嘉定区| 康乐县| 博罗县| 北碚区| 祁门县| 天水市| 胶州市| 长沙县| 水城县| 吴堡县| 南宫市| 花莲县| 镇巴县| 眉山市| 阜南县|