前言
串口對于處理器來說算是一種標配,也是在軟件開發中必不可少的,那就是使用串口來調試信息(打印出相應的信息)。STM32F0系列的芯片,串口根據型號不同,數量也不同,從1個到8個不等。
今天主要總結串口簡單且常用的功能,發送字符和中斷接收字符。今天提供的串口發送功能將在后面的各個模塊總結中都需要使用到,主要用于驗證和測試各項功能的正確性。
ST標準外設庫和參考手冊、數據手冊等都可以在ST官網下載,你也可以到我的360云盤下載。關于F0系列芯片的參考手冊有多個版本(針對F0不同芯片),但有一個通用版本,就是“STM32F0x128參考手冊V8(英文)2015-07”建議參考該手冊,以后如果你換用一種型號芯片也方便了解。
今天的軟件工程下載地址(360云盤):
https://yunpan.cn/cS5TeTVUWdc7V訪問密碼 9b8c
STM32F0xx的資料可以在我360云盤下載:
https://yunpan.cn/cS2PVuHn6X2Bj訪問密碼 8c37
準備工作
①新建源程序文件
一個工程項目在增加模塊功能的時候,一般都需要新增加模塊源程序的文件。今天提供的工程由于增加USART模塊,因此針對昨天(上一篇文章)的軟件工程需要增加模塊USART的文件(usart.c 和 usart.h)。
新建了源程序文件,還要添加到工程中進行編譯才行。還有需要添加我們使用到的標準外設庫文件到工程,我已經將文件新建,并添加到軟件工程中,如下圖:
注意:
文件所在位置最好對應目錄,方便管理。比如:usart.c放在bsp文件下,添加在工程中Bsp組下面。
源代碼詳情
①RCC時鐘
該函數位于bsp.c文件下面;
我個人習慣第一步配置時鐘,ST官方提供的例程也是把配置時鐘放在前面。關于RCC時鐘的配置比較重要,有好幾次我就是由于沒有配置相應RCC時鐘,讓我找了很久的問題。
②USART引腳配置
該函數位于usart.c文件下面;
這里的配置就是對串口收發引腳進行配置(具體參數說明請看上一篇文章)。
注意:
上面紅色框里面的配置是重點,必須對應配置才行。這里第三個參數“GPIO_AF_1”需要和你使用的外設對應。
③USART配置
該函數位于usart.c文件下面;
這里是串口相關參數進行配置,詳情請看中文注釋。具體每一個參數的意思,可以參看昨天方式,go to definition...
注意:
上面紅色框處,如果要使用中斷(我們工程是接收),必須對應配置才行。
④NVIC配置
該函數位于bsp.c文件下面;
要使用中斷,必須配置NVIC,這點也不能忘記。
⑤串口中斷接收函數
該函數位于stm32f0xx_it.c文件下面;
中斷接收到一個字符,就發送出去(可以通過電腦串口發送字符,STM32F0接收到該字符又發送給電腦)。
說明
STM32F0的芯片軟件兼容性很好,可以適用于F0其他很多型號的芯片(具體請看手冊、或者親自測試)。
以上實例總結僅供參考,若有不對之處,敬請諒解。
-
處理器
+關注
關注
68文章
18563瀏覽量
224078 -
USART
+關注
關注
1文章
192瀏覽量
30511 -
STM32F0
+關注
關注
0文章
61瀏覽量
17013 -
STM32F0XX
+關注
關注
0文章
11瀏覽量
2710
發布評論請先 登錄
相關推薦
STM32F042的CAN通信,初始化過不了的原因?
stm32f0xx_stdperiph_lib_um.chm怎么用?
stm32f4xx的CAN對ID配置有要求嗎?CAN收發器是什么型號的?
STM32F103RCT6的USART1不能接收多字節數據是什么原因導致的?
STM32G4XX不能夠像STM32F1XX STM32F4XX那樣對GPIO進行位帶操作呢?
STM32 HAL庫串口同時收發,接收卡死?
STM32請問串口要發送數據“1”該怎么賦值給USART->DR寄存器?
在STM32F0xx微控制器系列產品中使用DAC生成音頻和波形
![在<b class='flag-5'>STM32F0xx</b>微控制器系列產品中使用DAC生成音頻和波形](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
使用STM32F0xx和STM32F3xx微控制器為紅外遙控協議實現發送器和接收器
![使用<b class='flag-5'>STM32F0xx</b>和<b class='flag-5'>STM32F3xx</b>微控制器為紅外遙控協議實現發送器和接收器](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論