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

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

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

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

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

前言

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

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

下載

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

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

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

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

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

準(zhǔn)備工作

①新建源程序文件

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

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


注意:

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

源代碼詳情

①RCC時鐘


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

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

②USART引腳配置


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

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

注意:

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

③USART配置


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

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

注意:

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

④NVIC配置


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

要使用中斷,必須配置NVIC,這點也不能忘記。

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


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

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

說明

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

以上實例總結(jié)僅供參考,若有不對之處,敬請諒解。

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

    關(guān)注

    68

    文章

    18927

    瀏覽量

    227232
  • USART
    +關(guān)注

    關(guān)注

    1

    文章

    195

    瀏覽量

    30682
  • STM32F0
    +關(guān)注

    關(guān)注

    0

    文章

    61

    瀏覽量

    17043
  • STM32F0XX
    +關(guān)注

    關(guān)注

    0

    文章

    11

    瀏覽量

    2717
收藏 人收藏

    評論

    相關(guān)推薦

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

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

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

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

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

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

    STM32F10xx芯片資料

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

    CW2015_STM32F1XX_C8T6資料包分享

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

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

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

    stm32f0xx_stdperiph_lib_um.chm怎么用?

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

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

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

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

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

    STM32G4XX不能夠像STM32F1XX STM32F4XX那樣對GPIO進行位帶操作呢?

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

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

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

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

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

    STM32 HAL庫串口同時收發(fā),接收卡死?

    HAL庫是針對STM32系列單片機的一套常用的高級抽象層庫。在HAL庫中,串口通信是通過針對USART外設(shè)的封裝實現(xiàn)的。HAL庫中提供了一些函數(shù),可以方便地配置USART外設(shè)的各種參
    的頭像 發(fā)表于 10-26 17:42 ?3108次閱讀

    STM32L0xx硬件開發(fā)入門

    電子發(fā)燒友網(wǎng)站提供《STM32L0xx硬件開發(fā)入門.pdf》資料免費下載
    發(fā)表于 09-25 11:10 ?1次下載
    <b class='flag-5'>STM32L0xx</b>硬件開發(fā)入門

    STM32F0xx微控制器系列產(chǎn)品中使用DAC生成音頻和波形

    電子發(fā)燒友網(wǎng)站提供《在STM32F0xx微控制器系列產(chǎn)品中使用DAC生成音頻和波形.pdf》資料免費下載
    發(fā)表于 09-25 09:24 ?1次下載
    在<b class='flag-5'>STM32F0xx</b>微控制器系列產(chǎn)品中使用DAC生成音頻和波形