<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

          STM32的GPIO口的8種配置模式

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

          本文引用地址:http://www.ex-cimer.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、開(kāi)漏輸出_OUT_OD、推挽式輸出_OUT_PP、推挽式復(fù)用輸出_AF_PP、開(kāi)漏復(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);//寫(xiě)GPIO的某個(gè)位

          void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal);//寫(xiě)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ù)用功能的引出腳可以通過(guò)重映射,從不同的I/O管腳引出,即復(fù)用功 能的引出腳位是可通過(guò)程序改變到其他的引腳上!

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

          如:USART1: 0: 沒(méi)有重映像(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ù)用開(kāi)漏輸出,配置48腳為某種輸入模式,同時(shí)使能USART3并保持I2C2的非使能狀態(tài)。

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

          上一頁(yè) 1 2 下一頁(yè)

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

          評(píng)論


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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();