新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > STM32F0 驅動GPIO口輸出

        STM32F0 驅動GPIO口輸出

        作者: 時間:2016-12-02 來源:網絡 收藏
        之前老是不能點亮LED,連仿真器才發現,在未開戶GPIO時鐘使用的情況下,是無法配置GPIO寄存器的。
        測試代碼如下:

        本文引用地址:http://www.104case.com/article/201612/325080.htm
        #include "stm32f0xx.h"
        #include "main.h"
        void SystemInit(void){}
        long RCC_Tmp[10];
        long GPIO_Tmp[10];
        void SysInit(void)
        {
        /////////// 配置RCC /////////////////////////////
        RCC_Tmp[0] = RCC->CR;
        RCC->CR |= 1<<18; //外部高速時鐘旁路
        RCC_Tmp[1] = RCC->CR;
        RCC_Tmp[2] = RCC->AHBENR;
        RCC->AHBENR |= 1<<19; //使能PORTC的時鐘
        RCC_Tmp[3] = RCC->AHBENR;
        // RCC_Tmp[4] = RCC->AHBRSTR;
        // //RCC->AHBRSTR |= 1<<19 ;//復位PORTC
        // RCC_Tmp[5] = RCC->AHBRSTR;
        RCC_Tmp[6] = RCC->CR2;
        RCC->CR2 |= 1<<0; // HSI14震蕩器關閉
        RCC_Tmp[7] = RCC->CR2;
        ///////////////////////////////////////////////////
        /////////////// 配置GPIOC //////////////////////////////
        GPIO_Tmp[0] = GPIOC->MODER;
        GPIOC->MODER |= 0x05 <<16; //配置PC8PC9為通用輸出
        GPIO_Tmp[1] = GPIOC->MODER;
        GPIO_Tmp[2] = GPIOC->ODR;
        GPIOC->ODR |= 0x01<<8; //PC8PC9輸出1
        GPIO_Tmp[3] = GPIOC->ODR;
        GPIO_Tmp[4] = GPIOC->OSPEEDR;
        GPIOC->OSPEEDR |= 0x3<<16; //PC8配置為高速口
        GPIO_Tmp[5] = GPIOC->OSPEEDR;
        //////////////////////////////////////////////////////////
        }
        int main(void)
        {
        SysInit();
        while (1)
        {
        GPIOC->ODR |= 0x01 <<9;
        GPIOC->ODR &=~0X01<<9;
        }
        }

        待解決的問題:
        1、在配置RCC_AHBRSRT寄存器時,復位操作GPIOC,以后面的代碼中也無法配置GPIO寄存器。
        2、如何在仿真時直接查看寄存器中的值,而不是通過在程序中將寄存器的值對變量賦值查看。
        另:
        在用KEIL復制代碼到網頁中出現亂碼時,可按下圖設置一下KEIL即可解決。



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 乌鲁木齐县| 南宁市| 洛宁县| 万宁市| 横山县| 玉环县| 磴口县| 佛山市| 潞西市| 天气| 伊金霍洛旗| 开远市| 托克托县| 南陵县| 济阳县| 婺源县| 蒙城县| 双鸭山市| 青州市| 鄂托克旗| 吉木乃县| 荔波县| 汉寿县| 鄂尔多斯市| 阿坝| 奉新县| 元氏县| 巫山县| 呼和浩特市| 永和县| 鱼台县| 湾仔区| 政和县| 海淀区| 泗水县| 公安县| 马山县| 湖北省| 德令哈市| 循化| 江华|