0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(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 ? 次閱讀

Ⅰ、寫在前面

學(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è)有部分了解并親自寫代碼驗(yàn)證過(guò)。

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

筆者覺(jué)得很多初學(xué)者不善于主動(dòng)去學(xué)習(xí),都是想利用現(xiàn)成的工程代碼。筆者覺(jué)得這樣學(xué)習(xí)的方法不會(huì)成就你今后的成功,人都有懶惰的一面,但現(xiàn)實(shí)就是這么殘酷,沒(méi)辦法,你不努力,別人就會(huì)超過(guò)你?,F(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)添加到工程中(分為三類)。

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

第一類(標(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)接口

第二類(用戶自定義):

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

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

第三類(描述):

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)畫:

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

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

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

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

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

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

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)容及配圖由入駐作者撰寫或者入駐合作網(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

    文章

    1120

    瀏覽量

    128551
  • STM32
    +關(guān)注

    關(guān)注

    2258

    文章

    10828

    瀏覽量

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

    關(guān)注

    25

    文章

    4771

    瀏覽量

    96176
收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

    各位大佬好, 我現(xiàn)在想在自己開(kāi)發(fā)板上面跑通正點(diǎn)原子的一個(gè)例程,這個(gè)例程是關(guān)于DDR的讀寫,1024個(gè)數(shù)寫入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è)門檻。本文詳細(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 ?434次閱讀
    【QEMU系列】不用<b class='flag-5'>開(kāi)發(fā)板</b><b class='flag-5'>運(yùn)行</b>RT-Thread指南-ARM架構(gòu)

    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)可編程門陣列)技術(shù)的開(kāi)發(fā)平臺(tái),它允許工程師通過(guò)編程來(lái)定義和配置FPGA芯片的邏輯電路,以實(shí)現(xiàn)各種數(shù)字電路和邏輯功能。FPGA
    的頭像 發(fā)表于 03-14 18:20 ?1495次閱讀

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

    我在使用RT-Thread的時(shí)候,因?yàn)槟J(rèn)能選擇的開(kāi)發(fā)板包有限 所以開(kāi)發(fā)的時(shí)候我使用的是目前擁有的比較類似的開(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 ?320次閱讀
    ELF 1技術(shù)貼|<b class='flag-5'>如何將</b>Python3.6.9移植到<b class='flag-5'>開(kāi)發(fā)板</b><b class='flag-5'>上</b>

    在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

    如何將Go程序編譯到ELF 1開(kāi)發(fā)板

    編譯并運(yùn)行在ELF1開(kāi)發(fā)板的。一、在GoLand中配置(一)配置SSH連接Ubuntu虛擬機(jī)以及ELF1開(kāi)發(fā)板1、打開(kāi)GoLand的設(shè)置選項(xiàng)找到SSH,配置連接到
    的頭像 發(fā)表于 01-29 10:42 ?385次閱讀
    <b class='flag-5'>如何將</b>Go程序編譯到ELF 1<b class='flag-5'>開(kāi)發(fā)板</b>

    鴻蒙設(shè)備-開(kāi)發(fā)板基礎(chǔ)學(xué)習(xí)(BearPi-HM Micro)

    /download_img/kernel/ 五、燒錄鏡像 開(kāi)發(fā)板的撥碼開(kāi)關(guān)上撥到“000”燒錄模式,并按一下開(kāi)發(fā)板的RESET按鍵 在Windows打開(kāi)STM32CubePro
    發(fā)表于 01-08 21:54

    帶你玩轉(zhuǎn)AM62x開(kāi)發(fā)板的顯示接口——LVDS的顯示和修改方式

    此前小編已為大家介紹過(guò)OK6254-C開(kāi)發(fā)板的RGB顯示和修改方式,沒(méi)有讀過(guò)的小伙伴可以>>點(diǎn)擊這里閱讀,今天繼續(xù)為大家介紹OK6254-C開(kāi)發(fā)板的LVDS顯示和
    的頭像 發(fā)表于 01-05 08:02 ?1014次閱讀
    帶你玩轉(zhuǎn)AM62x<b class='flag-5'>開(kāi)發(fā)板</b>的顯示接口——LVDS的顯示和<b class='flag-5'>修改</b>方式

    STM32+Linux開(kāi)發(fā)板應(yīng)用手冊(cè)

    STM32 WIFI Linux 安卓智能控制開(kāi)發(fā)板應(yīng)用手冊(cè)
    發(fā)表于 12-21 11:04 ?3次下載

    方法|基于T507開(kāi)發(fā)板如何將占用引腳配置為普通GPIO

    方法|基于T507開(kāi)發(fā)板如何將占用引腳配置為普通GPIO
    的頭像 發(fā)表于 11-09 13:59 ?501次閱讀
    方法|基于T507<b class='flag-5'>開(kāi)發(fā)板</b>講<b class='flag-5'>如何將</b>占用引腳配置為普通GPIO

    迅為itop-3568開(kāi)發(fā)板qt學(xué)習(xí)手冊(cè)

    迅為itop-3568開(kāi)發(fā)板qt學(xué)習(xí)手冊(cè)
    的頭像 發(fā)表于 10-25 14:19 ?750次閱讀
    迅為itop-3568<b class='flag-5'>開(kāi)發(fā)板</b>qt<b class='flag-5'>學(xué)習(xí)</b>手冊(cè)<b class='flag-5'>上</b>新

    基于STM32開(kāi)發(fā)板點(diǎn)亮LCD例程

    網(wǎng)絡(luò)配套STM32開(kāi)發(fā)板有很多LCD例程,主要是TFT LCD跟OLED的。從這些例程,大家都能學(xué)會(huì)如何點(diǎn)亮一個(gè)LCD。但這代碼都有下面這些問(wèn)題。
    的頭像 發(fā)表于 09-24 11:54 ?1671次閱讀
    基于<b class='flag-5'>STM32</b><b class='flag-5'>開(kāi)發(fā)板</b>點(diǎn)亮LCD例程