STM32F0xx_USART收發(fā)配置詳細(xì)過程
前言
串口對(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è)庫(kù)和參考手冊(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è)庫(kù)文件到工程,我已經(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è)試)。