STM32的GPIO口的8種配置模式
四、 通用IO端口(GPIO)初始化
五、 的GPIO操作函數(shù)
uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);//讀GPIO某一位的輸入
uint16_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx);//讀GPIO的輸入
uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);//讀GPIO某一位的輸出
uint16_t GPIO_ReadOutputData(GPIO_TypeDef* GPIOx);//讀GPIO的輸出
void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);//將GPIO的某個位置位
void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);//將GPIO的某個位復(fù)位
void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal);//寫GPIO的某個位
void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal);//寫GPIO
1、復(fù)用功能:內(nèi)置外設(shè)是與I/O口共用引出管腳(不同的功能對應(yīng)同一管腳)
STM32 所有內(nèi)置外設(shè)的外部引腳都是與標(biāo)準(zhǔn)GPIO引腳復(fù)用的,如果有多個復(fù)用功能模塊對應(yīng)同一個引腳,只能使能其中之一,其它模塊保持非使能狀態(tài)。
2、重映射功能:復(fù)用功能的引出腳可以通過重映射,從不同的I/O管腳引出,即復(fù)用功
直接好處:PCB電路板的設(shè)計(jì)人員可以在需要的情況下,不必把某些信號在板上繞一大圈完成聯(lián)接,方便了PCB的設(shè)計(jì)同時潛在地減少了信號的交叉干擾。
如:USART1: 0: 沒有重映像(TX/PA9,RX/PA10); 1: 重映像(TX/PB6,RX/PB7)。
(參考AFIO_MAPR寄存器介紹)[0,1為一寄存器的bit值]
【注】 下述復(fù)用功能的引出腳具有重映射功能:
- 晶體振蕩器的引腳在不接晶體時,可以作為普通I/O口
- CAN模塊; - JTAG調(diào)試接口;- 大部分定時器的引出接口; - 大部分USART引出接口
- I2C1的引出接口;
舉例:對于STM32F103VBT6,47引腳為PB10,它的復(fù)用功能是I2C2_SCL和 USART3_TX,表示在上電之后它的默認(rèn)功能為PB10,而I2C2的SCL和USART3的TX為它的復(fù)用功能;另外在TIM2的引腳重映射后,TIM2_CH3也成為這個引腳的復(fù)用功能。
(1)要使用STM32F103VBT6的47、48腳的USART3功能,則需要配置47腳為復(fù)用推挽輸出或復(fù)用開漏輸出,配置48腳為某種輸入模式,同時使能USART3并保持I2C2的非使能狀態(tài)。
評論