在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

STM32CubeMX軟件工程描述_ USART配置過程

黃工的嵌入式技術圈 ? 來源:黃工的嵌入式技術圈 ? 2020-03-25 10:43 ? 次閱讀

Ⅰ、寫在前面

學習本文之前可以查看我前面的文章:

STM32CubeMX介紹、下載與安裝

STM32CubeMX使用方法及功能介紹

STM32CubeMX新建工程+基本IO配置過程

本文接著前面STM32CubeMX文章結合USART實例,講述關于STM32CubeMX新建USART工程,以及新建好完成的軟件工程。最終通過STM32CubeMX工具配置完成實現USART串口通信的軟件工程。

本文使用Keil(MDK-ARM) V5軟件為編譯環境,如果你沒有安裝最新版本的軟件,請安裝Keil(MDK-ARM) V5版本的軟件,具體過程可以參考我的一篇文章:

MDK-ARM下載與安裝

關于本文的更多詳情請往下看。

Ⅱ、STM32CubeMX新建USART工程

在上一篇文章簡單講述了基于IO新建一個工程的步驟,本文基于USART簡單講述一下STM32CubeMX新建UART串口發送工程。

(我們還是以STM32F103E為例來講述,如果你的板子是STM32其他型號芯片,在選擇芯片時對應即可)

1.新建工程基本步驟

STM32CubeMX新建工程前面的基本步驟大致如下幾步(具體請看我上一篇文章):

1.打開STM32CubeMX軟件,點擊“新建工程”

2.選擇MCU 或選擇(ST官方)開發板

3.工程配置

2.Pinout配置

這里我們配置IO(定義PF11引腳為LED)、RCC(使用HSE)、USART(串口)。

A.配置PF11引腳為輸出模式

第一步:放大芯片圖標,找到PF11(可以通過Find查找)


第二步:配置為輸出選中PF11 -> 左鍵 -> 彈出列表 -> 選中“GPIO_Output”


B.配置RCC

PCC配置有三項,我們這里只配置HSE高速外部時鐘,其他兩項LSE外部低速時鐘、MCO時鐘輸出默認配置。

選擇HSE高速外部時鐘為“Crystal”,對應的引腳自動改變,如下圖:


C.配置USART(串口)

USART的配置有好幾種,本文就以最基礎,也是最常見的一種”UART異步串行通信”配置來講述。

選擇USART1模式為“asynchronous”對應的引腳自動轉換為USART。

3.Clock配置

對于系統時鐘應該都知道它的作用,就是驅動整個芯片工作的心臟,如果沒有了它,就等于人沒有了心跳。時鐘的快慢也就決定了程序的快慢。

STM32的時鐘樹功能比較強大,分頻、倍頻可以根據你的需求配置出多種時鐘。STM32CubeMX這個工具在這一塊也是做的比較人性化的,可以直觀的看見具體配置,而且有錯誤提示(注意:不同型號芯片的時鐘樹可能不同,但大同小異),我們配置為HSE,如下圖:


4.“綜合”配置

這里的配置相當于初始化一些配置,集齊了前面的引腳對應的初始化配置,所以叫“綜合配置”。

由于我們主要配置了IO 和 USART,所以在這個選項里面,重點關心的就是這兩項。

A.IO(PF11)配置


B.USART配置


5.最后生成代碼、編譯下載

這些步驟不是今天的重點,詳細過程可以參看上一篇文章。

生成的原始代碼“STM32CubeMX_USART配置(原始版)”可到我360云盤下載:

https://yunpan.cn/cMPy7AbArtxQ8 訪問密碼 e92f

6.添加代碼

在main.c文件中添加“延時函數”:

voidTestDelay(uint32_t cnt)

{

while(cnt--);

}

在主函數中添加下圖代碼:


添加以上代碼就能實現:間隔(約0.5S)LED亮滅變化一次,且串口打印數據。

STM32CubeMX_USART配置(修改版),提供給大家下載地址(360云盤):

https://yunpan.cn/cMPKPHVbJtNCB 訪問密碼 415b

Ⅲ、軟件工程說明

接下來講述一下使用STM32CubeMX新建的軟件工程(MDK-ARM版本)。

1.目錄結構


在MDK-ARM工程中,可以看到四個目錄,分別是:

HAL庫:這個庫類似于標準外設庫(在Drivers目錄下)

啟動文件startup_stm32f103xe.s:這個文件也和標準外設庫里面文件startup_stm32f10x_hd.s類似。

User用戶應用:這個目錄下是用戶添加源代碼文件的目錄,如果要添加新文件可以在這里添加。

CMSIS微控制器軟件接口標準:這個目錄也是屬于底層的代碼(和我之前使用標準外設庫建立的軟件工程類似,也是位于Drivers目錄下)。

2.添加用戶代碼區域

打開使用STM32CubeMX新建的軟件工程可以看見很多地方有成對的注釋代碼“USER CODE BEGIN”和“USERCODE END”,這兩個注釋之間就是用戶添加自己代碼的區域。如main.c文件下就有多處用戶編程區域:

3.初始化配置代碼描述

當我們使用STM32CubeMX新建軟件工程后,打開軟件可以看見里面有很多代碼就是通過STM32CubeMX工具自動生成的(是STM32CubeMX的特性),下面大概講述一下本文生成的代碼。

A.四個主初始化代碼:

HAL_Init(); HAL庫底層初始化

SystemClock_Config(); 時鐘配置

MX_GPIO_Init(); IO初始化(用戶需求)

MX_USART1_UART_Init();USART初始化(用戶需求)

這四個主初始化配置代碼中,前面兩個基本上是使用STM32CubeMX工具生成都有的代碼,后面兩個才是用戶根據自己需求配置的代碼。

B. HAL_Init();

這個屬于軟件工程的標配,主要對初始化(默認)FLASH和NVIC等。

這個函數會使程序不能訪問FLASH,也就是為什么我們程序在運行的時候不能下載代碼的原因,解決的辦法:1.不調用該函數; 2.使MCU處于復位狀態下載代碼。


C. SystemClock_Config();

當你使用以前標準外設庫開發過STM32,知道時鐘初始化代碼,那么這個函數應該很熟悉。其實這里的配置就是上面說的RCC配置(時鐘樹),參數就是時鐘樹對應的值。看時鐘樹就很容易理解。

位于main.c文件。


D. MX_GPIO_Init();

這個函數是我們配置的IO函數(對PF11引腳初始化,很簡單),位于main.c文件。

和以前使用標準外設庫開發類似,其中的參數就是上面“綜合配置”里設置的。


E. MX_USART1_UART_Init();

這個函數是我們配置的USART,位于main.c文件。

和以前使用標準外設庫開發類似,其中的參數就是上面“綜合配置”里設置的,波特率、數據位數、停止位等。


Ⅳ、說明

以上簡單講述了使用STM32CubeMX生成的軟件工程,后續會定期更新使用STM32CubeMX新建各種外設資源工程的文章,敬請等待。

如果是STM32初學者的話,不建議立刻使用這個工具來開發,建議先學習標準外設庫開發,因為這個工具生產的代碼(HAL庫)相比以前標準外設庫理解起來相對困難一點。

以上總結僅供參考,若有不對之處,敬請諒解。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • keil
    +關注

    關注

    69

    文章

    1223

    瀏覽量

    169039
  • USART
    +關注

    關注

    1

    文章

    200

    瀏覽量

    31639
  • stm32cubemx
    +關注

    關注

    5

    文章

    286

    瀏覽量

    15988
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    使用STM32CubeMX進行配置USB的時候,有哪些小的需要注意的細節?

    在使用STM32CubeMX進行配置USB的時候,是參照例程進行的配置,自己配置的就是沒有成功,例程就滅有問題,總感覺哪里沒有打開?有人遇到過需要注意的小細節嗎?
    發表于 04-23 06:54

    STM32開發入門進階必備!《STM32嵌入式系統開發—基于STM32CubeMX和HAL庫》新書發布!

    近日,由華清遠見教育科技集團精心編撰的教育部高等學校電子信息類專業教學指導委員會規劃教材、普通高等教育電子信息類專業系列教材——《STM32嵌入式系統開發—基于STM32CubeMX和HAL庫》重磅
    的頭像 發表于 04-03 14:54 ?614次閱讀
    <b class='flag-5'>STM32</b>開發入門進階必備!《<b class='flag-5'>STM32</b>嵌入式系統開發—基于<b class='flag-5'>STM32CubeMX</b>和HAL庫》新書發布!

    STM32CubeMX無法打開.ioc文件怎么解決?

    我的STM32CubeMX不能打開別人的工程文件,雙擊打開.ioc文件后會全白,只剩左上角有個home,什么也點不了,但是我自己可以創建工程,也可以打開我自己創建的工程。請問我該如何解
    發表于 03-12 07:39

    用TouchGFX生成的工程,再使用STM32CubeMX生成MDK工程,下載時報錯是怎么回事?

    我在用TouchGFX生成的工程,再使用STM32CubeMX生成MDK工程,編譯后沒有出錯,再是在下載時報錯: 如果不加載這個算法文件,那么按鍵圖標就是亂碼。
    發表于 03-11 06:50

    使用STM32CubeMX生成FreeRTOS的MDK工程,選擇AC6編譯器有很多錯誤,為什么?

    使用STM32CubeMX生成FreeRTOS的MDK工程,選擇AC5編譯器可以編譯成功,選擇AC6編譯器有很多錯誤,是STM32CubeMX生成FreeRTOS的MDK工程還不支持A
    發表于 03-11 06:32

    STM32CubeMX生成的FreeRTOS源碼格式如何優化?

    如圖,STM32CubeMX生成的FreeRTOS源碼格式有待優化,空格都是以箭頭的方式呈現,觀感很差。FreeRTOS官方下載的源碼則不存在這個問題,說明是STM32CubeMX生成源碼的過程出現的格式問題,希望ST官方能對
    發表于 03-10 08:04

    stm32cubemx按照配置重新生成工程,bsp_SysTick.c一直沒有呢?

    stm32cubemx按照配置重新生成工程,bsp_SysTick.c一直沒有呢
    發表于 03-10 07:44

    使用STM32CubeMX生成CMake工程中的FLASH.ld被更改怎么解決?

    使用STM32CubeMX生成CMake工程之后,對STM32xxxx_FLASH.ld進行了修改。然后再次使用STM32CubeMX工程
    發表于 03-10 06:52

    STM32CubeMX生成STM32mp135D的USART1,2,3,6代碼初始化是空的,為什么?

    STM32CubeMX生成STM32mp135D的USART1,2,3,6代碼初始化是空的,參考其他代碼做了初始化操作,可以通過HAL_USART_Transmit接口發送數據,但是
    發表于 03-07 07:48

    STM32CubeMX用于STM32配置和初始化C代碼生成

    電子發燒友網站提供《STM32CubeMX用于STM32配置和初始化C代碼生成.pdf》資料免費下載
    發表于 02-26 17:32 ?658次下載

    工程師開發利器:STM32CubeMX 與 eDesignSuite 的協同開發

    電源效率,并通過 CubeMX 配置 STM32 的低功耗模式。電機控制與代碼集成在電機控制項目中,eDesignSuite 生成的算法代碼可直接嵌入 STM32CubeMX 生成的
    的頭像 發表于 02-26 14:07 ?637次閱讀
    <b class='flag-5'>工程</b>師開發利器:<b class='flag-5'>STM32CubeMX</b> 與 eDesignSuite 的協同開發

    使用stm32cubeMX無法生成mdk工程文件?

    幾年前使用過cubemx,可以生成keil的工程文件。最近有個工程使用cubemx創建,結果只能生成stm32cubemx類型的文件,無法生
    發表于 01-04 20:03

    STM32CubeMX的菜單介紹

    相信初學者打開STM32CubeMX一定是一臉懵逼,里面都是全英文的,不知道從何入手。這里先給大家簡單講解一下。在新建工程這一欄里,我們最常用的是第一個,它會彈出一個芯片列表供你選擇,然后就會創建一
    的頭像 發表于 12-25 21:03 ?408次閱讀
    <b class='flag-5'>STM32CubeMX</b>的菜單介紹

    STM32CUBEMX(2)--USART通過DMA方式接收不定長數據

    : 選擇芯片型號 使用STM32CUBEMX選擇芯片stm32f030r8,如下所示: 配置時鐘源 HSE與LSE分別為外部高速時鐘和低速時鐘,在本文中使用內置的時鐘源,故都選擇Disable選項
    發表于 09-04 11:48

    stm32用串口燒錄怎么設置

    準備工作 確保您擁有STM32開發板和相應的硬件設備,如USB轉串口模塊。 安裝STM32CubeMXSTM32CubeProgrammer軟件,這些是ST官方提供的工具,用于
    的頭像 發表于 08-22 09:33 ?2969次閱讀
    主站蜘蛛池模板: 久草资源在线播放 | 黄 色 片成 人免费观看 | bt种子磁力天堂torrent | 免费高清成人啪啪网站 | tube69日本 | 性做久久久久 | 四虎网址最新 | 毛茸茸成熟妇女亚洲人 | 高清视频 一区二区三区四区 | 天天射夜夜爽 | 丁香婷婷久久 | 特级毛片s级全部免费 | 国产性色视频 | 天天艹夜夜 | 琪琪see色原在线20 | 真实一级一级一片免费视频 | 亚洲激情视频网站 | 午夜性刺激免费视频观看不卡专区 | 黄色国产网站 | 中文字幕乱码人成乱码在线视频 | 欧美一区二区高清 | 欧美精品色精品一区二区三区 | 狠狠色噜噜狠狠狠狠色综合久 | 一级做a爰片久久毛片免费 一级做a爰片久久毛片免费看 | 九九热在线视频观看 | 福利你懂的 | 国产精品看片 | 久久亚洲国产午夜精品理论片 | 午夜影视在线视频观看免费 | 亚洲第一在线视频 | 天天综合久久久网 | 三级全黄a | 性人久久久久 | 一级视频在线免费观看 | 国产肥女bbwbbw | 久久精品94精品久久精品 | 亚洲jizzjizz妇女 | a级男女性高爱潮高清试 | 中国性猛交xxxx乱大交 | 天天插日日射 | 亚洲国产日韩精品怡红院 |