0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

學(xué)習(xí)STM32開(kāi)發(fā)難不難? 如何將工程(修改來(lái))運(yùn)行在自己開(kāi)發(fā)板上

黃工的嵌入式技術(shù)圈 ? 來(lái)源:黃工的嵌入式技術(shù)圈 ? 2020-03-25 11:27 ? 次閱讀

Ⅰ、寫(xiě)在前面

學(xué)習(xí)STM32開(kāi)發(fā)難不難?

筆者的回答:不難?。?!

為什么不難?

1、ST提供了很多很好的資源,比如:標(biāo)準(zhǔn)外設(shè)庫(kù)、多種資料(包括多版中文的翻譯版資料)等。

2、很好的集成開(kāi)發(fā)環(huán)境Keil、IAR等。

3、網(wǎng)上很多有用的分享,包括筆者在內(nèi)的愿意把技術(shù)知識(shí)無(wú)償分享出來(lái)的人。

學(xué)習(xí)STM32開(kāi)發(fā)前途怎么樣?

筆者的回答:只要你技術(shù)能力夠強(qiáng),月薪上萬(wàn)不是問(wèn)題。

要學(xué)到什么程度才能找到相關(guān)工作?

1、首先要能靈活運(yùn)用C語(yǔ)言常用知識(shí)編程,也就是說(shuō)不要求精通,但要能靈活使用基本的語(yǔ)法(如:switch、for、break等),還需要對(duì)指針、結(jié)構(gòu)體等有一定的掌握。

2、你得有自己獨(dú)立開(kāi)發(fā)的項(xiàng)目,項(xiàng)目的大小可以看得出你部分能力。

3、對(duì)STM32基本外設(shè)有部分了解并親自寫(xiě)代碼驗(yàn)證過(guò)。

Ⅱ、筆者想說(shuō)的話

筆者覺(jué)得很多初學(xué)者不善于主動(dòng)去學(xué)習(xí),都是想利用現(xiàn)成的工程代碼。筆者覺(jué)得這樣學(xué)習(xí)的方法不會(huì)成就你今后的成功,人都有懶惰的一面,但現(xiàn)實(shí)就是這么殘酷,沒(méi)辦法,你不努力,別人就會(huì)超過(guò)你。現(xiàn)在大學(xué)生就業(yè)的情況,我們大家都應(yīng)該知道,可以說(shuō)是一年不如一年好了。每一年都有成千上萬(wàn)的大學(xué)生進(jìn)入社會(huì),你在這個(gè)領(lǐng)域不付出點(diǎn)努力,總會(huì)有人在這個(gè)領(lǐng)域付出努力。

如今社會(huì),不管是哪一行,競(jìng)爭(zhēng)都很激烈。如果你決定選擇了這一行,在不得已的情況下,請(qǐng)不要輕言說(shuō)放棄。因?yàn)槟惴艞壛司偷扔诜穸四惝?dāng)初的決定,你再去決定選擇另外一個(gè)行業(yè),說(shuō)不定今后你還會(huì)否定你當(dāng)初的決定,這樣會(huì)惡性循環(huán)下去。筆者的建議是:真正想想自己喜歡哪一行、適合哪一行,想好了再做決定。

關(guān)于學(xué)習(xí)STM32,筆者覺(jué)得它真的不難,需要的是我們的耐心,我們的努力。如果你當(dāng)初只是感覺(jué)喜歡學(xué)習(xí)STM32,那么請(qǐng)保持這份感覺(jué)。如果你在學(xué)習(xí)的時(shí)候遇到困難,失去這份感覺(jué)了,請(qǐng)你用不同的方法找回這份感覺(jué)。如果你想放棄這一行,請(qǐng)做好進(jìn)入另外一行的準(zhǔn)備。

Ⅲ、如何將工程(修改來(lái))運(yùn)行在自己開(kāi)發(fā)板上

可能很多朋友的開(kāi)發(fā)板、調(diào)試板上面主控芯片和筆者提供講解的工程實(shí)例不一樣,那么,只要是同一個(gè)系列(比如同為F4系列:你的是STM32F427IG、筆者的是STM32F417ZG),只要適當(dāng)修改一下工程配置就能使用了。

筆者告訴大家:STM32的兼容很好,有些工程可能不用修改,直接下載都能使用。(但是,作為學(xué)習(xí)盡量自己動(dòng)手驗(yàn)證、如果只是測(cè)試某個(gè)功能,可以直接下載測(cè)試)。

好了,說(shuō)了那么多,還是教大家如何使用我的工程:

1.了解筆者工程文件、工程結(jié)構(gòu)關(guān)系


筆者使用的文件和工程結(jié)構(gòu)如上圖所示的對(duì)應(yīng)關(guān)系。

文件結(jié)構(gòu)中Libraries就是提取ST官方的標(biāo)準(zhǔn)外設(shè)庫(kù),對(duì)應(yīng)添加到工程中(分為三類(lèi))。

文件中自定義的文件夾對(duì)應(yīng)工程的一個(gè)組。

第一類(lèi)(標(biāo)準(zhǔn)外設(shè)庫(kù)):

Startup Code:?jiǎn)?dòng)代碼

STM32F10x_StdPeriph_Driver:標(biāo)準(zhǔn)外設(shè)庫(kù)庫(kù)驅(qū)動(dòng)

CMSIS:標(biāo)準(zhǔn)接口

第二類(lèi)(用戶自定義):

Bsp:應(yīng)用底層代碼(初始化、驅(qū)動(dòng)等)

App:應(yīng)用實(shí)現(xiàn)代碼(配置OS、應(yīng)用等)

第三類(lèi)(描述):

Doc:ReadMe.txt描述文檔,不會(huì)執(zhí)行編譯

2.同系列修改型號(hào)

同一系列(我們以F4系列為例,其他系列F0、F1這些原理一樣)芯片的工程,如果資源都有,工程可以共用,只需要修改一下工程里的型號(hào)就行。

我們以F4工程為例,STM32F417ZG-> STM32F427IG修改方法如下三步驟。

參考工程下載地址:

https://yunpan.cn/cBQiZXDsvacwV 訪問(wèn)密碼 a98e

1.修改工程配置型號(hào)

project ->Options for Target -> Device 修改為自己芯片的型號(hào)

修改方式如下動(dòng)畫(huà):

2.修改源文件型號(hào)

筆者習(xí)慣在工程文件里面修改型號(hào),原因在于這里可以看見(jiàn)具體的型號(hào),也知道宏定義的名稱(chēng)(如:STM32F40_41xxx)。

其實(shí),這個(gè)宏定義在工程配置中也可以定義,根據(jù)自己習(xí)慣選擇定義。

修改方式如下動(dòng)畫(huà):

3.修改啟動(dòng)文件

啟動(dòng)文件和芯片型號(hào)對(duì)應(yīng)的關(guān)系,比較簡(jiǎn)單,如下動(dòng)畫(huà):

3.應(yīng)用相關(guān)

筆者提供的實(shí)例代碼都是簡(jiǎn)化了很多無(wú)用的代碼、比較基礎(chǔ)的、容易理解的,基本上都是提供LED、USART1、TIM延時(shí)這種在所以芯片都有的功能。

如果你LED不是筆者提供例程里面的,很簡(jiǎn)單,在bsp.h文件下改一下對(duì)應(yīng)IO口就行了。

如果你串口是使用USART2,只要usart.c文件下修改相關(guān)配置就行了。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • ST
    ST
    +關(guān)注

    關(guān)注

    32

    文章

    1137

    瀏覽量

    129103
  • STM32
    +關(guān)注

    關(guān)注

    2271

    文章

    10923

    瀏覽量

    357219
  • 開(kāi)發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5121

    瀏覽量

    98036
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    OpenHarmony怎么修改DPI密度值?觸覺(jué)智能RK3566鴻蒙開(kāi)發(fā)板演示

    開(kāi)源鴻蒙OpenHarmony系統(tǒng)下,修改DPI密度值的方法,觸覺(jué)智能Purple Pi OH鴻蒙開(kāi)發(fā)板演示,搭載了瑞芯微RK3566四核處理器,Laval鴻蒙社區(qū)推薦開(kāi)發(fā)板,已適配全新開(kāi)源鴻蒙OpenHarmony5.0 Re
    的頭像 發(fā)表于 12-24 11:46 ?250次閱讀
    OpenHarmony怎么<b class='flag-5'>修改</b>DPI密度值?觸覺(jué)智能RK3566鴻蒙<b class='flag-5'>開(kāi)發(fā)板</b>演示

    基于哪吒開(kāi)發(fā)板部署YOLOv8模型

    開(kāi)發(fā)板的推理性能,同時(shí)測(cè)試所推出的 OpenVINO C# API (https://github.com/guojin-yan/OpenVINO-CSharp-API) 項(xiàng)目能否應(yīng)用到該開(kāi)發(fā)板,我們使用該
    的頭像 發(fā)表于 11-15 14:13 ?398次閱讀
    基于哪吒<b class='flag-5'>開(kāi)發(fā)板</b>部署YOLOv8模型

    正點(diǎn)原子的stm32開(kāi)發(fā)板能用stlink嗎

    在嵌入式開(kāi)發(fā)領(lǐng)域,STM32系列微控制器因其高性能、低成本和廣泛的應(yīng)用場(chǎng)景而廣受歡迎。正點(diǎn)原子(ZYBO)作為國(guó)內(nèi)知名的嵌入式開(kāi)發(fā)板供應(yīng)商,提供了多種基于STM32的解決方案。 正點(diǎn)原
    的頭像 發(fā)表于 11-13 09:21 ?890次閱讀

    開(kāi)發(fā)板的PL端有4片的DDR,怎么管理數(shù)據(jù)的傳輸

    各位大佬好, 我現(xiàn)在想在自己開(kāi)發(fā)板上面跑通正點(diǎn)原子的一個(gè)例程,這個(gè)例程是關(guān)于DDR的讀寫(xiě),1024個(gè)數(shù)寫(xiě)入DDR,然后讀出來(lái)進(jìn)行對(duì)比,如果沒(méi)有錯(cuò)誤就點(diǎn)亮LED。 開(kāi)發(fā)板的PL端有4
    發(fā)表于 09-10 19:17

    【QEMU系列】不用開(kāi)發(fā)板運(yùn)行RT-Thread指南-ARM架構(gòu)

    成為一個(gè)門(mén)檻。本文詳細(xì)介紹如何在QEMU虛擬機(jī)的Vexpress-A9平臺(tái)運(yùn)行RT-Thread,幫助開(kāi)發(fā)者在沒(méi)有實(shí)際硬件開(kāi)發(fā)板的情況下
    的頭像 發(fā)表于 08-09 08:35 ?1037次閱讀
    【QEMU系列】不用<b class='flag-5'>開(kāi)發(fā)板</b><b class='flag-5'>運(yùn)行</b>RT-Thread指南-ARM架構(gòu)

    鴻蒙OpenHarmony南向/北向快速開(kāi)發(fā)教程-迅為RK3568開(kāi)發(fā)板

    新建第一個(gè)工程-HelloWorld P12_Dev-Eco studio的界面布局 P13_基本工程目錄簡(jiǎn)介 P14_部署應(yīng)用到開(kāi)發(fā)板 P15_修改應(yīng)用程序的名稱(chēng)和圖標(biāo) P16_應(yīng)用
    發(fā)表于 07-23 10:44

    鴻蒙OpenHarmony【標(biāo)準(zhǔn)系統(tǒng) 運(yùn)行】(基于RK3568開(kāi)發(fā)板

    燒錄完成重啟開(kāi)發(fā)板后,系統(tǒng)將會(huì)自動(dòng)啟動(dòng)。開(kāi)發(fā)板附帶的屏幕呈現(xiàn)以下界面,表明系統(tǒng)已運(yùn)行成功。
    的頭像 發(fā)表于 05-06 15:38 ?497次閱讀
    鴻蒙OpenHarmony【標(biāo)準(zhǔn)系統(tǒng) <b class='flag-5'>運(yùn)行</b>】(基于RK3568<b class='flag-5'>開(kāi)發(fā)板</b>)

    MCU友好過(guò)渡MPU,米爾基于STM32MP135開(kāi)發(fā)板裸機(jī)開(kāi)發(fā)應(yīng)用筆記

    的代碼:編譯并調(diào)試后,讓程序全速運(yùn)行,可以看到開(kāi)發(fā)板的藍(lán)燈閃爍:至此創(chuàng)建的工程調(diào)試成功。產(chǎn)品介紹米爾STM32MP135
    發(fā)表于 03-29 18:35

    基于STM32H743IIT6開(kāi)發(fā)的代碼,是否能不經(jīng)修改無(wú)障礙地運(yùn)行在STM32H753IIT6?

    基于 STM32H743IIT6 開(kāi)發(fā)的代碼,是否能不經(jīng)修改無(wú)障礙地運(yùn)行在STM32H753IIT6
    發(fā)表于 03-29 06:19

    fpga開(kāi)發(fā)板是什么?fpga開(kāi)發(fā)板有哪些?

    FPGA開(kāi)發(fā)板是一種基于FPGA(現(xiàn)場(chǎng)可編程門(mén)陣列)技術(shù)的開(kāi)發(fā)平臺(tái),它允許工程師通過(guò)編程來(lái)定義和配置FPGA芯片的邏輯電路,以實(shí)現(xiàn)各種數(shù)字電路和邏輯功能。FPGA
    的頭像 發(fā)表于 03-14 18:20 ?2154次閱讀

    如何在PSoC62 Evaluation kit開(kāi)發(fā)板運(yùn)行RT-Thread呢?

    本文主要介紹如何在PSoC62 Evaluation kit開(kāi)發(fā)板運(yùn)行RT-Thread,如何連接CYW43012 WiFi藍(lán)牙模組,以及如何進(jìn)行WiFi聯(lián)網(wǎng)、網(wǎng)絡(luò)延遲、網(wǎng)絡(luò)帶寬測(cè)試。
    的頭像 發(fā)表于 02-27 10:49 ?1084次閱讀
    如何在PSoC62 Evaluation kit<b class='flag-5'>開(kāi)發(fā)板</b><b class='flag-5'>上</b><b class='flag-5'>運(yùn)行</b>RT-Thread呢?

    請(qǐng)問(wèn)可以利用RT-Thread修改屬于自己開(kāi)發(fā)板包?

    我在使用RT-Thread的時(shí)候,因?yàn)槟J(rèn)能選擇的開(kāi)發(fā)板包有限 所以開(kāi)發(fā)的時(shí)候我使用的是目前擁有的比較類(lèi)似的開(kāi)發(fā)板,但是硬件是不同的,每次添加組件之后,重新編譯 就會(huì)把我修改了的內(nèi)容給
    發(fā)表于 02-26 08:19

    ELF 1技術(shù)貼|如何將Python3.6.9移植到開(kāi)發(fā)板

    如何進(jìn)行交叉編譯并移植到ELF1開(kāi)發(fā)板。在網(wǎng)址:https://www.python.org/ftp/python/下載Python-3.6.9.tar.xz壓縮
    的頭像 發(fā)表于 02-22 14:06 ?461次閱讀
    ELF 1技術(shù)貼|<b class='flag-5'>如何將</b>Python3.6.9移植到<b class='flag-5'>開(kāi)發(fā)板</b><b class='flag-5'>上</b>

    fpga開(kāi)發(fā)板與linux開(kāi)發(fā)板區(qū)別

    FPGA開(kāi)發(fā)板與Linux開(kāi)發(fā)板是兩種不同的硬件開(kāi)發(fā)平臺(tái),各自具有不同的特點(diǎn)和應(yīng)用場(chǎng)景。在以下的文章中,我詳細(xì)介紹FPGA開(kāi)發(fā)板和Linu
    的頭像 發(fā)表于 02-01 17:09 ?2408次閱讀

    在TP芯片開(kāi)發(fā)的軟件想要運(yùn)行在同型號(hào)的TE芯片,需要做什么修改嗎?

    嗨,請(qǐng)教個(gè)問(wèn)題,如在TP芯片開(kāi)發(fā)的軟件想要運(yùn)行在同型號(hào)的TE芯片,需要做什么修改嗎?
    發(fā)表于 02-01 08:01