串列埠設定的一般步驟可以總結為如下幾個步驟:
串列埠時鐘使能,gpio 時鐘使能
串列埠是掛載在 apb2 下面的外設,所以使能函式為:
rcc_apb2periphclockcmd(rcc_apb2periph_usart1);
串列埠復位
當外設出現異常的時候可以通過復位設定,實現該外設的復位,然後重新配置
這個外設達到讓其重新工作的目的。一般在系統剛開始配置外設的時候,都會先執行復位該外
設的操作。復位的是在函式 usart_deinit()中完成:
void usart_deinit(usart_typedef* usartx)
;//串列埠復位
gpio 埠模式設定
void usart_init(usart_typedef* usartx, usart_inittypedef* usart_initstruct);
串列埠引數初始化
usart_initstructure.usart_baudrate = bound; //波特率設定;
usart_initstructure.usart_wordlength = usart_wordlength_8b;//字長為 8 位資料格式
usart_initstructure.usart_stopbits = usart_stopbits_1; //乙個停止位
usart_initstructure.usart_parity = usart_parity_no; //無奇偶校驗位
usart_initstructure.usart_hardwareflowcontrol
= usart_hardwareflowcontrol_none; //無硬體資料流控制
usart_initstructure.usart_mode = usart_mode_rx | usart_mode_tx; //收發模式
usart_init(usart1, &usart_initstructure)
; //初始化串列埠
開啟中斷並且初始化 nvic(如果需要開啟中斷才需要這個步驟)
使能串列埠
編寫中斷處理函式
實現**如下:
#include "uart.h"
int fputc(int ch,file *p) //函式預設的,在使用printf函式時自動呼叫
/*串列埠初始化*/
void uart1_init(u32 bound)
void usart1_irqhandler()
usart_clearflag(usart1,usart_flag_tc)
;}
下篇使用暫存器實現串列埠通訊 STM32 實現PWM 庫函式版
tim1和tim7沒有pwm輸出 tim0和tim8 有七路pwm輸出 27 14 通用定時器 都有4個 pwm 44 16 一共有30個pwm輸出 圖中,我們假定定時器工作在向上計數 pwm 模式,且當 cnt ccrx 時輸出 1。那麼就可以得到如上的 pwm示意圖 當 cnt 值小於 ccrx...
STM32配置GPIO 串列埠的配置(庫函式版本)
本文章以stm32f407zgtx為例 1 首先我們需要知道能夠作為串列埠使用的gpio有哪些 2 對串列埠的配置 1 首先我們要知道串列埠的配置過程 gpio的初始化,串列埠的初始化,nvic的初始化。故首先我們要先建立這些初始化必要的結構體 2 開啟時鐘 3 對gpio進行配置 gpio的配置主...
STM32實現待機喚醒 庫函式版
很多微控制器都有低功耗模式,stm32 也不例外。在系統或電源復位以後,微控制器處於運 行狀態。執行狀態下的 hclk 為 cpu 提供時鐘,核心執行程式 當 cpu 不需繼續執行時,可以利用多個低功耗模式來節省功耗,例如等待某個外部事件時。使用者需要根據最低電源消耗,最快速啟動時間和可用的喚醒源等...