本文章以stm32f407zgtx為例:
1、首先我們需要知道能夠作為串列埠使用的gpio有哪些:
2、對串列埠的配置:
(1)、首先我們要知道串列埠的配置過程:
gpio的初始化,串列埠的初始化,nvic的初始化。故首先我們要先建立這些初始化必要的結構體:
(2)、開啟時鐘
(3)、對gpio進行配置
gpio的配置主要是對gpio的初始化,這裡使用的是stm32f4xx_gpio.c檔案裡的gpio_init(gpio_typedef* gpiox, gpio_inittypedef* gpio_initstruct)函式對gpio初始化,初始化的內容主要是對gpio_initstruct裡面的元素進行賦值,然後傳遞給該函式。
(4)、對串列埠1進行配置
串列埠的配置主要是對串列埠的初始化,這裡使用的是stm32f4xx_usart.c檔案裡的usart_init(usart_typedef* usartx, usart_inittypedef* usart_initstruct)函式對串列埠初始化,初始化的內容主要是對usart_initstruct裡面的元素進行賦值,然後傳遞給該函式。
(5)、對nvic(總中斷)進行配置
nvic的配置主要是對nvic的初始化,這裡使用的是misc.c檔案裡的nvic_init(nvic_inittypedef* nvic_initstruct)函式對nvic初始化,初始化的內容主要是對nvic_initstruct裡面的元素進行賦值,然後傳遞給該函式。
(6)、編寫串列埠中斷函式
我們可以通過獲取串列埠一的中斷標誌位來判斷是否為串列埠一產生的中斷,獲取中斷標誌位的函式在stm32f4xx_usart.c檔案中usart_getflagstatus(usart_typedef* usartx, uint16_t usart_flag)或usart_getitstatus(usart_typedef* usartx, uint16_t usart_it)。(我這裡寫的只是將發過來的資料再發回去的**)
(7)、重寫fputc函式,將printf通過串列埠列印出來
這樣我們就可以通過使用printf函式來列印串列埠資料啦。
STM32 的串列埠
一 串列埠使用 原則 盡量中斷中不要有延時 比如自定義delay 和自定義printf串列埠列印,明顯找事啊這麼慢能不發生溢位error嘛 接收和傳送盡量分開處理 1.串列埠傳送資料丟失 1 通常是因為傳送之前未檢測tc狀態位之前是否處於傳送完成標誌導致,關於stm32之 的測試程式來講會導致第乙個...
stm32學習筆記之GPIO配置
1 gpio mode ain 模擬輸入 2 gpio mode in floating 浮空輸入 3 gpio mode ipd 下拉輸入 4 gpio mode ipu 上拉輸入 5 gpio mode out od 開漏輸出 6 gpio mode out pp 推挽輸出 7 gpio mod...
STM32微控制器GPIO的配置
1.gpio mode ain 模擬輸入 adc輸入模擬訊號時,專用的模擬輸入模式 2.gpio mode in floating 浮空輸入 3.gpio mode ipd 下拉輸入 4.gpio mode ipu 上拉輸入 5.gpio mode out od 開漏輸出 6.gpio mode o...