STM32F407串口調試總結
阿新 • • 發佈:2017-07-21
ges gpio cloc fig alt 介紹 例程 標準 理解
STM32F407ZGT6最多可以提供6路串口。雖然有6路通信,但是只要理解其中1路串口是如何設置的,其他的串口基本都是大同小異,串口設置的一般流程如下:
一、背景
最近項目開發需要用到3路串口,分別為U1,U5,U6,其中U1原子哥的例程已經提供,拿過來就可用,本文主要講解U5,U6串口調試。
二、正文
1、硬件描述
三個串口分別對應的發送引腳和接收引腳如下表所示:
串口號 |
接收引腳 |
發送引腳 |
USART1 |
PA9 |
PA10 |
UART5 |
PC12 |
PD2 |
USART6 |
PG14 |
PG9 |
2、串口介紹
USART為通用同步異步接收器,能夠靈活地與外部設備進行全雙工數據交換,滿足外部設備對工業標準NRZ異步穿行數據格式的要求。
STM32F407ZGT6最多可以提供6路串口。雖然有6路通信,但是只要理解其中1路串口是如何設置的,其他的串口基本都是大同小異,串口設置的一般流程如下:
其中需要註意以下幾點:
1)、使能串口時鐘時,要註意該串口時掛在那一個APB下面
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART6,ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_UART5,ENABLE);
其中串口5和串口6時鐘所掛在的APB不一樣。
2)、GPIO口模式設置時不能配置為輸入或者輸出模式,只能配置為復用功能GPIO_MODE_AF
3)、引腳復用器映射發送和接收引腳要分開寫,不能用“|”符號寫成一條語句。
GPIO_PinAFConfig(BT1_TX_PORT,BT1_TX_PINSOURCE|BT1_RX_PINSOURCE,GPIO_AF_UART5); // 錯誤書寫
GPIO_PinAFConfig(BT1_TX_PORT,BT1_TX_PINSOURCE,GPIO_AF_UART5); // BT1_TX
GPIO_PinAFConfig(BT1_RX_PORT,BT1_RX_PINSOURCE,GPIO_AF_UART5); // BT1_RX
參考資料:http:[email protected]/blog/static/166026328201232675952136/
STM32F407串口調試總結