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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > STM32 GPIO使用步驟 ST3.0.0庫

          STM32 GPIO使用步驟 ST3.0.0庫

          作者: 時間:2016-12-03 來源:網(wǎng)絡 收藏
          初始化一個普通IO的步驟

          1:GPIO_InitTypeDef GPIO_InitStructure定義一個結構體,用于初始化IO

          本文引用地址:http://www.ex-cimer.com/article/201612/325163.htm

          2:使能IO時鐘,STM32 的IO都是高速IO。

          分為兩種情況

          第一種是IO為高速時鐘:

          void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState)

          第二種是IO為低速時鐘

          void RCC_APB1PeriphClockCmd(uint32_t RCC_APB1Periph, FunctionalState NewState)

          3:GPIO_InitStructure選定具體IO端口,用戶要使用哪個IO,是PC3還是PC4

          4:GPIO_InitStructure設置IO的工作模式,輸出輸入還是?,一共有8中IO的工作模式,一般IO設置為推挽輸出

          5:GPIO_InitStructure設置IO的工作速率,2M還是50MHZ,這個只對輸出模式有作用,如果IO設置為輸入就沒有作用了。

          6:GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct) 調用函數(shù)初始化上面設置好的信息寫入到IO外設中。

          7:上面6步初始化好IO了,接下來就要設置IO為高電平還是低電平了。

          IO設置為高電平函數(shù)為:

          void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);

          IO設置為低電平函數(shù)為:

          void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);

          =====================================================================================================

          實例:

          GPIO_InitTypeDef GPIO_InitStructure;
          RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC, ENABLE); //使能高速外設IO

          GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5;
          GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
          GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
          GPIO_Init(GPIOC, &GPIO_InitStructure);

          GPIO_SetBits(GPIOC, GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5);

          PC3 PC4 PC5都設為輸出高電平

          以上來自野火M3



          關鍵詞: STM32GPIO使用步

          評論


          技術專區(qū)

          關閉
          看屁屁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); })();