1. 程式人生 > >STM32F407串口調試總結

STM32F407串口調試總結

ges gpio cloc fig alt 介紹 例程 標準 理解

一、背景

最近項目開發需要用到3路串口,分別為U1U5U6,其中U1原子哥的例程已經提供,拿過來就可用,本文主要講解U5U6串口調試。

二、正文

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串口調試總結