新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > STM32的GPIO口的8種配置模式

        STM32的GPIO口的8種配置模式

        作者: 時(shí)間:2016-11-25 來源:網(wǎng)絡(luò) 收藏

        本文引用地址:http://www.104case.com/article/201611/321405.htm

        四、 通用IO端口(GPIO)初始化

        4.1 GPIO初始化

        41.1 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | B | C, ENABLE):使能APB2總線外設(shè)時(shí)鐘;

        41.2 RCC_ APB2PeriphResetCmd (RCC_APB2Periph_GPIOA | B | C, DISABLE):釋放GPIO復(fù)位。

        4.2 置各個(gè)PIN端口(模擬輸入_AIN、輸入浮空_IN_FLOATING、輸入上拉_IPU、輸入下拉_IPD、開漏輸出_OUT_OD、推挽式輸出_OUT_PP、推挽式復(fù)用輸出_AF_PP、開漏復(fù)用輸出_AF_OD)。

        4.3GPIO初始化完成。

        五、 的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的某個(gè)位置位

        void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);//將GPIO的某個(gè)位復(fù)位

        void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal);//寫GPIO的某個(gè)位

        void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal);//寫GPIO

        六、管腳的復(fù)用功能重映射

        1、復(fù)用功能:內(nèi)置外設(shè)是與I/O口共用引出管腳(不同的功能對(duì)應(yīng)同一管腳)

        STM32 所有內(nèi)置外設(shè)的外部引腳都是與標(biāo)準(zhǔn)GPIO引腳復(fù)用的,如果有多個(gè)復(fù)用功能模塊對(duì)應(yīng)同一個(gè)引腳,只能使能其中之一,其它模塊保持非使能狀態(tài)。

        2、重映射功能:復(fù)用功能的引出腳可以通過重映射,從不同的I/O管腳引出,即復(fù)用功 能的引出腳位是可通過程序改變到其他的引腳上!

        直接好處:PCB電路板的設(shè)計(jì)人員可以在需要的情況下,不必把某些信號(hào)在板上繞一大圈完成聯(lián)接,方便了PCB的設(shè)計(jì)同時(shí)潛在地減少了信號(hào)的交叉干擾。

        如:USART1: 0: 沒有重映像(TX/PA9,RX/PA10); 1: 重映像(TX/PB6,RX/PB7)。

        (參考AFIO_MAPR寄存器介紹)[0,1為一寄存器的bit值]

        【注】 下述復(fù)用功能的引出腳具有重映射功能:

        - 晶體振蕩器的引腳在不接晶體時(shí),可以作為普通I/O口

        - CAN模塊; - JTAG調(diào)試接口;- 大部分定時(shí)器的引出接口; - 大部分USART引出接口

        - I2C1的引出接口; - SPI1的引出接口;

        舉例:對(duì)于STM32F103VBT6,47引腳為PB10,它的復(fù)用功能是I2C2_SCL和 USART3_TX,表示在上電之后它的默認(rèn)功能為PB10,而I2C2的SCL和USART3的TX為它的復(fù)用功能;另外在TIM2的引腳重映射后,TIM2_CH3也成為這個(gè)引腳的復(fù)用功能。

        (1)要使用STM32F103VBT6的47、48腳的USART3功能,則需要配置47腳為復(fù)用推挽輸出或復(fù)用開漏輸出,配置48腳為某種輸入模式,同時(shí)使能USART3并保持I2C2的非使能狀態(tài)。

        (2)使用STM32F103VBT6的47腳作為TIM2_CH3,則需要對(duì)TIM2進(jìn)行重映射,然后再按復(fù)用功能的方式配置對(duì)應(yīng)引腳。

        上一頁 1 2 下一頁

        關(guān)鍵詞: STM32GPIO口配置模

        評(píng)論


        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 新津县| 麻阳| 吴忠市| 温州市| 饶阳县| 安达市| 沙洋县| 铜陵市| 克山县| 建昌县| 靖边县| 隆安县| 大安市| 新竹市| 福安市| 鄂托克前旗| 台北市| 上蔡县| 阿合奇县| 丽江市| 壶关县| 汝城县| 高台县| 江阴市| 红安县| 阳朔县| 乐业县| 永宁县| 通辽市| 鱼台县| 蓬溪县| 永仁县| 龙陵县| 兴海县| 城固县| 宜宾县| 屯昌县| 盱眙县| 科技| 安仁县| 商都县|