STM3 實現串列埠通訊 庫函式版

2021-10-09 04:22:48 字數 1395 閱讀 2633

串列埠設定的一般步驟可以總結為如下幾個步驟:

串列埠時鐘使能,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 不需繼續執行時,可以利用多個低功耗模式來節省功耗,例如等待某個外部事件時。使用者需要根據最低電源消耗,最快速啟動時間和可用的喚醒源等...