新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > STM32F2 GPIO 配置問題

        STM32F2 GPIO 配置問題

        作者: 時間:2016-11-09 來源:網絡 收藏
        在編寫GPIO模擬i2c時,下面兩個初始化有不同

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

        第一種方法:

        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
        GPIO_InitStructure.GPIO_OType = GPIO_OType_OD;
        GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
        GPIO_Init(GPIOC, &GPIO_InitStructure);

        GPIO_WriteBit(GPIOC, GPIO_Pin_9, Bit_SET); //zyboy

        第二種方法:

        GPIO_WriteBit(GPIOC, GPIO_Pin_9, Bit_SET); //zyboy
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
        GPIO_InitStructure.GPIO_OType = GPIO_OType_OD;
        GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
        GPIO_Init(GPIOC, &GPIO_InitStructure);

        通過示波器觀察 第一種方法:會出現GPIO瞬間有個低電平,之后變成高電平,第二種方法:一直為高電平

        原因:GPIO上電默認輸入模式,GPIO寄存器值為0,高阻懸浮狀態,GPIO電平由外圍電路決定。

        由于i2c總線,GPIO外接上拉電阻,故上電時GPIO表現為高電平。如果程序初始化開始設置GPIO為輸出,再設置GPIO為高,由于GPIO寄存器值默認上電是0,故GPIO會是有個瞬間的低電平然后變高。如果事先把GPIO寄存器設置為1,再設置GPIO為輸出,則GPIO一直為高。



        關鍵詞: STM32F2GPIO配置問

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 玛纳斯县| 五家渠市| 舟山市| 正阳县| 喀什市| 夏邑县| 武鸣县| 奉新县| 凯里市| 遂平县| 微山县| 教育| 红原县| 新安县| 界首市| 高邑县| 左云县| 合川市| 玉山县| 鄯善县| 呼伦贝尔市| 延长县| 馆陶县| 溆浦县| 商南县| 彰武县| 贵溪市| 西林县| 道孚县| 平利县| 湾仔区| 古浪县| 尚义县| 怀仁县| 涿州市| 类乌齐县| 喜德县| 沂南县| 东丽区| 凭祥市| 永定县|