<acronym id="xonnx"></acronym>
      <td id="xonnx"></td>
    1. <pre id="xonnx"></pre>

      1. 專注電子技術學習與研究
        當前位置:單片機教程網 >> STM32 >> 瀏覽文章

        關于STM32的GPIO

        作者:槍炮紫苑   來源:槍炮紫苑   點擊數:  更新時間:2014年07月09日   【字體:
        初學STM32接觸的是點燈程序,其實就是對ARM的GPIO口的熟悉和掌握。
        在使用GPIO口前需要對對應的端口進行初始化,初始化的配置程序如下所示。
        void GPIO_Configuration(void)
        {
          GPIO_InitTypeDef GPIO_InitStructure; //GPIO_InitStruct:指向結構GPIO_InitTypeDef的指針,包含了外設GPIO的配置信息
         
          GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15; //設置端口
          GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD; //配置為開漏輸出
          GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; //IO口最高輸出速度為2MHZ

          GPIO_Init(GPIOB, &GPIO_InitStructure);   //根據GPIO_InitStructure中指定的參數初始化外設GPIOx寄存器
        }
        以上代碼可以參見STM32的固件庫手冊,里面有對每個函數的詳細說明。
        下面是對IO口的設置,這里設置IO口為低時LED燈點亮。
        方法一:
        GPIOB->BSRR = 0x2000D000;
        這里我看了很久都沒有弄明白,哎,這個值對初學者來說很難弄明白。后來查閱STM32103XX的參考手冊才發現有BSRR的寄存器配置詳細解說?赐旰蟛呕腥淮笪。
        前16位為BRy,置1時清楚對應ODRy;后16位為BSy,置1時設置對應ODRy;兩者同時設置時,以BSy有效。



        方法二:
        GPIO_SetBits(GPIOB, GPIO_Pin_12 | GPIO_Pin_14 | GPIO_Pin_15);
        GPIO_ResetBits(GPIOB, GPIO_Pin_13);
        這個功能和方法一等效,但是易讀,比較推薦這種寫法,雖然多了一行語句。

        方法三:
        GPIO_WriteBit(GPIOB, GPIO_Pin_15, Bit_SET);
        此方法適用于對單個端口的操作,比較方便。
        Bit_SET設置數據端口位,Bit_RESET,清楚數據端口位。
        OK,暫時就這么多。

        相關文章

        欧美性色欧美精品视频,99热这里只有精品mp4,日韩高清亚洲日韩精品一区二区,2020国自产拍精品高潮