新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 我的ARM編程技巧---積累

        我的ARM編程技巧---積累

        作者: 時間:2016-11-26 來源:網絡 收藏
        隨著學習的深入,漸漸發現,編程時更多的工作是不斷的配置寄存器,做著許多重復的工作。所以就感覺很有必要把經常使用的寄存器、配置結構羅列出來,以方便使用!!這是其中的一部分,其他的慢慢來

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

        本頁所包含的配置函數有:
        void SysTick_Configuration(void);
        void GPIO_Configuration(void);
        void EXTI_Configuration(void);
        void NVIC_Configuration(void);
        void RCC_Configuration(void);
        void IWDG_Configuration(void);

        //同時需要配置的結構體變量
        GPIO_InitTypeDef GPIO_InitStructure;
        EXTI_InitTypeDef EXTI_InitStructure;
        NVIC_InitTypeDef NVIC_InitStructure;

        *******//Cortex系統定時器(SysTick)*********************
        *******************************************************
        *******************************************************
        void SysTick_Configuration(void)
        {
        /
        //選擇系統定時器(SysTick)的時鐘源
        SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK);


        SysTick_SetReload(72000);


        SysTick_ITConfig(ENABLE);
        }
        *********///GPIO的配置程序***************************************
        ******************************************************************
        *******************************************************************
        void GPIO_Configuration(void) void RCC_Configuration(void)
        {
        GPIO_InitTypeDef GPIO_InitStructure;


        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
        GPIO_Init(GPIOC, &GPIO_InitStructure);


        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
        GPIO_Init(GPIOB, &GPIO_InitStructure);
        }
        //中斷線路初始化
        void EXTI_Configuration(void)
        {

        EXTI_InitStructure.EXTI_Line = EXTI_Line9;
        EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
        EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
        EXTI_InitStructure.EXTI_LineCmd = ENABLE;
        EXTI_Init(&EXTI_InitStructure);


        EXTI_InitStructure.EXTI_Line = EXTI_Line13;
        EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
        EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
        EXTI_InitStructure.EXTI_LineCmd = ENABLE;
        EXTI_Init(&EXTI_InitStructure);
        }
        ///嵌套中斷向量NVIC**********************************
        /
        GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource9);
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
        NVIC_InitStructure.NVIC_IRQChannel=EXTI0_IRQChannel;
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;
        NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;
        NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
        NVIC_Init(&NVIC_InitStructure);

        //為EXTI_Line9使能并配置中斷向量

        //為EXTI_Line0使能并配置中斷向量
        GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource9);
        NVIC_InitStructure.NVIC_IRQChannel=EXTI9_5_IRQChannel;
        NVIC_Init(&NVIC_InitStructure);

        //為EXTI_Line9使能并配置中斷向量

        //為EXTI_Line13使能并配置中斷向量
        GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource9);
        NVIC_InitStructure.NVIC_IRQChannel=EXTI15_10_IRQChannel;
        NVIC_Init(&NVIC_InitStructure);

        }


        上一頁 1 2 下一頁

        關鍵詞: ARM編程技

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 卢龙县| 民丰县| 昌平区| 宁城县| 盐池县| 剑阁县| 股票| 阜宁县| 曲水县| 克什克腾旗| 准格尔旗| 嘉善县| 团风县| 揭东县| 合川市| 兴义市| 安顺市| 芦山县| 樟树市| 嘉兴市| 柯坪县| 北碚区| 林口县| 大厂| 砚山县| 太康县| 丹江口市| 景东| 怀集县| 新竹市| 巫溪县| 治多县| 乌拉特前旗| 丰镇市| 柘荣县| 遂溪县| 富民县| 桑日县| 玉屏| 通渭县| 屏东县|