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

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

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

STM32F0xx _USART收發(fā)配置詳細(xì)過程

黃工的嵌入式技術(shù)圈 ? 來源:黃工的嵌入式技術(shù)圈 ? 2020-04-08 09:28 ? 次閱讀

前言

串口對(duì)于處理器來說算是一種標(biāo)配,也是在軟件開發(fā)中必不可少的,那就是使用串口來調(diào)試信息(打印出相應(yīng)的信息)。STM32F0系列的芯片,串口根據(jù)型號(hào)不同,數(shù)量也不同,從1個(gè)到8個(gè)不等。

今天主要總結(jié)串口簡(jiǎn)單且常用的功能,發(fā)送字符和中斷接收字符。今天提供的串口發(fā)送功能將在后面的各個(gè)模塊總結(jié)中都需要使用到,主要用于驗(yàn)證和測(cè)試各項(xiàng)功能的正確性。

下載

ST標(biāo)準(zhǔn)外設(shè)庫和參考手冊(cè)、數(shù)據(jù)手冊(cè)等都可以在ST官網(wǎng)下載,你也可以到我的360云盤下載。關(guān)于F0系列芯片的參考手冊(cè)有多個(gè)版本(針對(duì)F0不同芯片),但有一個(gè)通用版本,就是“STM32F0x128參考手冊(cè)V8(英文)2015-07”建議參考該手冊(cè),以后如果你換用一種型號(hào)芯片也方便了解。

今天的軟件工程下載地址(360云盤):

https://yunpan.cn/cS5TeTVUWdc7V訪問密碼 9b8c

STM32F0xx的資料可以在我360云盤下載:

https://yunpan.cn/cS2PVuHn6X2Bj訪問密碼 8c37

準(zhǔn)備工作

①新建源程序文件

一個(gè)工程項(xiàng)目在增加模塊功能的時(shí)候,一般都需要新增加模塊源程序的文件。今天提供的工程由于增加USART模塊,因此針對(duì)昨天(上一篇文章)的軟件工程需要增加模塊USART的文件(usart.c 和 usart.h)。

新建了源程序文件,還要添加到工程中進(jìn)行編譯才行。還有需要添加我們使用到的標(biāo)準(zhǔn)外設(shè)庫文件到工程,我已經(jīng)將文件新建,并添加到軟件工程中,如下圖:


注意:

文件所在位置最好對(duì)應(yīng)目錄,方便管理。比如:usart.c放在bsp文件下,添加在工程中Bsp組下面。

源代碼詳情

①RCC時(shí)鐘


該函數(shù)位于bsp.c文件下面;

我個(gè)人習(xí)慣第一步配置時(shí)鐘,ST官方提供的例程也是把配置時(shí)鐘放在前面。關(guān)于RCC時(shí)鐘的配置比較重要,有好幾次我就是由于沒有配置相應(yīng)RCC時(shí)鐘,讓我找了很久的問題。

②USART引腳配置


該函數(shù)位于usart.c文件下面;

這里的配置就是對(duì)串口收發(fā)引腳進(jìn)行配置(具體參數(shù)說明請(qǐng)看上一篇文章)。

注意:

上面紅色框里面的配置是重點(diǎn),必須對(duì)應(yīng)配置才行。這里第三個(gè)參數(shù)“GPIO_AF_1”需要和你使用的外設(shè)對(duì)應(yīng)。

③USART配置


該函數(shù)位于usart.c文件下面;

這里是串口相關(guān)參數(shù)進(jìn)行配置,詳情請(qǐng)看中文注釋。具體每一個(gè)參數(shù)的意思,可以參看昨天方式,go to definition...

注意:

上面紅色框處,如果要使用中斷(我們工程是接收),必須對(duì)應(yīng)配置才行。

④NVIC配置


該函數(shù)位于bsp.c文件下面;

要使用中斷,必須配置NVIC,這點(diǎn)也不能忘記。

⑤串口中斷接收函數(shù)


該函數(shù)位于stm32f0xx_it.c文件下面;

中斷接收到一個(gè)字符,就發(fā)送出去(可以通過電腦串口發(fā)送字符,STM32F0接收到該字符又發(fā)送給電腦)。

說明

STM32F0的芯片軟件兼容性很好,可以適用于F0其他很多型號(hào)的芯片(具體請(qǐng)看手冊(cè)、或者親自測(cè)試)。

以上實(shí)例總結(jié)僅供參考,若有不對(duì)之處,敬請(qǐng)諒解。

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

    關(guān)注

    68

    文章

    19048

    瀏覽量

    228529
  • USART
    +關(guān)注

    關(guān)注

    1

    文章

    195

    瀏覽量

    30742
  • STM32F0
    +關(guān)注

    關(guān)注

    0

    文章

    61

    瀏覽量

    17063
  • STM32F0XX
    +關(guān)注

    關(guān)注

    0

    文章

    11

    瀏覽量

    2719
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    【GD32 MCU 移植教程】10、從STM32F030系列移植到GD32E230系列

    GD32E230 對(duì)比 STM32F030 有著很好的兼容性和更高的性價(jià)比,內(nèi)核和外設(shè)都有所增強(qiáng)。本人曾做過產(chǎn)品的 MCU 替換,將基于 STM32F0xx 1.5.0 固件庫的應(yīng)用程序移植到
    的頭像 發(fā)表于 09-07 10:24 ?417次閱讀
    【GD32 MCU 移植教程】10、從<b class='flag-5'>STM32F</b>030系列移植到GD32E230系列

    【GD32 MCU 移植教程】8、從 STM32F4xx 系列移植到 GD32F4xx

    GD32F4xx 系列 MCU 是基于 Arm? Cortex?-M4 處理器的 32 位通用微控制器,與 STM32F4xx系列 MCU 保持高度兼容。本文主要從以下三個(gè)方面進(jìn)行介紹:硬件資源對(duì)比
    的頭像 發(fā)表于 09-06 09:40 ?767次閱讀
    【GD32 MCU 移植教程】8、從 <b class='flag-5'>STM32F4xx</b> 系列移植到 GD32<b class='flag-5'>F4xx</b> 系

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

    的不同,有一個(gè)或兩個(gè)DMA模塊。 STM32F0XX DMA控制器總共有5個(gè)通道用于DMA1,每個(gè)通道都專門管理來自一個(gè)或多個(gè)外設(shè)的存儲(chǔ)器訪問請(qǐng)求。它具有一個(gè)仲裁器,用于處理不同的DMA請(qǐng)求的優(yōu)先級(jí)
    發(fā)表于 09-04 11:48

    STM32F10xx芯片資料

    電子發(fā)燒友網(wǎng)站提供《STM32F10xx芯片資料.pdf》資料免費(fèi)下載
    發(fā)表于 07-08 14:56 ?1次下載

    CW2015_STM32F1XX_C8T6資料包分享

    CW2015_STM32F1XX_C8T6
    發(fā)表于 06-07 12:46 ?8次下載

    開發(fā)環(huán)境coocox,stm32f429串口輸出總是亂碼的原因?

    。 #includequot;stm32f4xx_usart.h quot; #includequot;stm32f4xx_gpio.h quot; #includequot;stm32f4xx
    發(fā)表于 05-17 07:38

    STM32F042的CAN通信,初始化過不了的原因?

    !。初始化完成后又進(jìn)不去中斷,我的啟動(dòng)代碼是 startup_stm32f0xx.s沒有can中斷,但是stm32f0xx。h里面又定義了#define CEC_IRQnCEC_CAN_IRQn,然后就
    發(fā)表于 05-08 06:17

    用Cubemx配置調(diào)通過STM32F0USART2,發(fā)送可以正常發(fā)送,但接收不正常,為什么?

    我用Cubemx 配置調(diào)通過STM32F0USART2,發(fā)送可以正常發(fā)送,但接收不正常,我現(xiàn)在懷疑是Cubemx的問題,有沒有人曾經(jīng)條通過?
    發(fā)表于 05-06 06:25

    stm32f0xx_stdperiph_lib_um.chm怎么用?

    最近用STM32F0,沒有中文文檔找到庫里面有個(gè)stm32f0xx_stdperiph_lib_um.chm 這個(gè)怎么用?搗鼓了一會(huì)沒整明白比如 我想知道所有RCC的庫函數(shù), 怎么看?
    發(fā)表于 04-24 07:19

    stm32f4xx的CAN對(duì)ID配置有要求嗎?CAN收發(fā)器是什么型號(hào)的?

    stm32f4xx的CAN疑問: 1)標(biāo)準(zhǔn)幀收發(fā)時(shí),對(duì)CAN ID有特殊的要求或約束嗎?比如哪些CAN ID不能用? 2)CAN收發(fā)器是什么型號(hào)?對(duì)CAN數(shù)據(jù)鏈路層的編碼有特殊操作嗎?
    發(fā)表于 04-22 06:03

    STM32F103RCT6的USART1不能接收多字節(jié)數(shù)據(jù)是什么原因?qū)е碌模?/a>

    節(jié)的數(shù)據(jù)。5毫秒延時(shí),STM32F103RCT6只能接收到2個(gè)字節(jié)的數(shù)據(jù)。 用實(shí)際上位機(jī)發(fā)送時(shí),STM32F103RCT6能接收到最后1個(gè)字節(jié)的數(shù)據(jù)。 實(shí)際上位機(jī)是這樣發(fā)送的: for(int j=0
    發(fā)表于 04-17 06:35

    STM32G4XX不能夠像STM32F1XX STM32F4XX那樣對(duì)GPIO進(jìn)行位帶操作呢?

    請(qǐng)教下,在STM32G4XX系列里面,GPIO掛載在AHB2總線上面,地址在0x4800 0000. 是不是也就意味著,STM32G4XX不能夠在像STM32F1XX
    發(fā)表于 03-21 07:16

    STM32F101xxSTM32F103xx ARM 內(nèi)核32位高性能微控制器參考手冊(cè)

    電子發(fā)燒友網(wǎng)站提供《STM32F101xxSTM32F103xx ARM 內(nèi)核32位高性能微控制器參考手冊(cè).pdf》資料免費(fèi)下載
    發(fā)表于 01-29 09:25 ?7次下載

    RT-thread源碼移植到STM32F10x和STM32F4xx

    RT-thread源碼移植到STM32F10x和STM32F4xx: 一、源碼下載 點(diǎn)擊入門->下載 ? 在歷史版本里邊隨便選取一個(gè) ? 會(huì)進(jìn)入百度云盤的下載地址,里邊有全部版本的源碼。這里下載
    的頭像 發(fā)表于 11-15 09:38 ?2244次閱讀
    RT-thread源碼移植到<b class='flag-5'>STM32F</b>10x和<b class='flag-5'>STM32F4xx</b>

    基于ARM的32位MCU STM32F103xx數(shù)據(jù)手冊(cè)

    電子發(fā)燒友網(wǎng)站提供《基于ARM的32位MCU STM32F103xx數(shù)據(jù)手冊(cè).pdf》資料免費(fèi)下載
    發(fā)表于 11-09 09:47 ?0次下載
    基于ARM的32位MCU <b class='flag-5'>STM32F103xx</b>數(shù)據(jù)手冊(cè)