通過庫函式使用STM32f103串列埠中斷的心得

2021-08-18 04:20:53 字數 704 閱讀 1125

stm32使用usart中斷主要有一下幾步:

1,定義中斷結構體,和串列埠結構體

2,使能時鐘

3,編寫中斷函式

4,使能中斷

關於傳送中斷,筆者當時有個疑惑:

上圖是關於狀態暫存器(usart_sr)中的兩位。

上圖是控制暫存器1(usart_cr1)中的兩位。

筆者當時的疑惑是,這兩位都可以控制中斷啊,dr資料被移走觸發中斷,dr資料被移走也會使tc為置一,也會產生中斷,這尼瑪不衝突了?筆者當時陷入了死迴圈。

後來筆者想通了,要進入傳送中斷,用庫函式:usart_itconfig(usart1,usart_it_rxne,enable);

這個函式時用來開啟cr1中的響應位的,比如上一句,是用來開啟傳送完成中斷的,也就是置txeie位為1(並且傳送緩衝區最初就是空),接下來就會進入中斷服務函式。這裡並沒有開啟tcie位(即並沒有使能傳送完成中斷,所以不會產生衝突)。

當是以查詢方式來傳送資料時,並沒有使能中斷也沒有使能中斷通道,故怎麼著也不會產生中斷,只用查詢sr暫存器就行了。

以上是筆者的一點見解,如有不對的地方請指教。

STM32F10系列的管腳復用功能和AFIO

最近用stm32的spi介面和ti的cc3000通訊,首先配置spi介面,按照網路關於spi介面的配置例程配置好以後,發現spi不工作,用while迴圈傳送資料時,clk和mosi管腳沒有輸出訊號,然後各種找問題 首先檢查時鐘,然後看看各個管腳能不能被置位,復位,發現其gpio功能都是正常的。後來認...

嵌入式STM32F10學習 跑馬燈實驗

使用藍橋杯ct117e板子 庫函式版本 gpio輸出方式 推挽輸出 io口輸出高電平,led滅,輸出低電平,led點亮。鎖存器高電平開啟,低電平關閉 電路圖對應 鎖存口 le n le m pd2 led燈 d1 d8 h d0 h d7 m pc8 m pc15 define led0 pcout...

STM32F103 FLASH 庫函式程式設計

flash有寫保護所以要先解鎖 flash unlock 只能對已經擦除的flash空間進行寫操作,所以寫之前必須擦除。並且flash只能頁擦除或片擦除。擦除位址為頁的首位址就行 flash erasepage 0x0807f800 庫函式本生有等待完成的操作,所以後面while迴圈等待不用也可以 ...