在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > STM32學(xué)習(xí)筆記——外部中斷EXTI

            STM32學(xué)習(xí)筆記——外部中斷EXTI

            作者: 時(shí)間:2016-11-28 來源:網(wǎng)絡(luò) 收藏

            //配置按鈕中斷線觸發(fā)方式設(shè)置中斷配置結(jié)構(gòu)體成員

            EXTI_InitStructure.EXTI_Line=EXTI_Line6;//選擇外部中斷線EXTI_Line0~EXTI_Line18共19根線

            EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;//設(shè)置為中斷請(qǐng)求,可以為EXTI_Mode_Interrupt中斷請(qǐng)求或者

            //EXTI_Mode_Event事件請(qǐng)求

            EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Falling;//觸發(fā)方式下降沿觸發(fā)還可以為EXTI_Trigger_Rising上升沿觸發(fā)或者

            //EXTI_Trigger_Rising_Falling上升沿下降沿觸發(fā)

            EXTI_InitStructure.EXTI_LineCmd=ENABLE;//中斷線使能ENABLE使能,DISABLE失能

            EXTI_Init(&EXTI_InitStructure);//根據(jù)參數(shù)結(jié)構(gòu)體初始化EXTI中斷

            EXTI_GenerateSWInterrupt(EXTI_Line6);//產(chǎn)生一個(gè)軟件中斷EXTI_Line6中斷允許

            //到此中斷配置完成,可以寫中斷處理函數(shù)。

            while(1)

            {

            }

            }

            voidRCC_Configuration(void)

            {

            //復(fù)位RCC外部設(shè)備寄存器到默認(rèn)值

            RCC_DeInit();

            //打開外部高速晶振

            RCC_HSEConfig(RCC_HSE_ON);

            //等待外部高速時(shí)鐘準(zhǔn)備好

            HSEStartUpStatus=RCC_WaitForHSEStartUp();

            //外部高速時(shí)鐘已經(jīng)準(zhǔn)別好

            if(HSEStartUpStatus==SUCCESS)

            {

            FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);

            FLASH_SetLatency(FLASH_Latency_2);

            //配置AHB(HCLK)時(shí)鐘=SYSCLK

            RCC_HCLKConfig(RCC_SYSCLK_Div1);

            //配置APB2(PCLK2)鐘=AHB時(shí)鐘

            RCC_PCLK2Config(RCC_HCLK_Div1);

            //配置APB1(PCLK1)鐘=AHB1/2時(shí)鐘

            RCC_PCLK1Config(RCC_HCLK_Div2);

            //配置ADC時(shí)鐘=PCLK21/4

            RCC_ADCCLKConfig(RCC_PCLK2_Div4);

            //配置PLL時(shí)鐘==外部高速晶體時(shí)鐘*98MHz*9MHz=72MHz

            RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9);

            //配置ADC時(shí)鐘=PCLK2/4

            RCC_ADCCLKConfig(RCC_PCLK2_Div4);

            //使能PLL時(shí)鐘

            RCC_PLLCmd(ENABLE);

            //等待PLL時(shí)鐘就緒

            while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY)==RESET)

            {

            }

            //配置系統(tǒng)時(shí)鐘=PLL時(shí)鐘

            RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);

            //檢查PLL時(shí)鐘是否作為系統(tǒng)時(shí)鐘

            while(RCC_GetSYSCLKSource()!=0x08)

            {

            }

            }

            RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB

            |RCC_APB2Periph_AFIO,ENABLE);

            //使能GPIOA,GPIOB和AFIO的APB2

            }

            voidGPIO_Configuration(void)

            {

            GPIO_InitTypeDefGPIO_InitStructure;//定義配置GPIO的結(jié)構(gòu)體

            GPIO_InitStructure.GPIO_Pin=GPIO_Pin_8;//選中第8個(gè)腳

            GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;

            GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;//推挽輸出

            GPIO_Init(GPIOB,&GPIO_InitStructure);//用配置好的結(jié)構(gòu)體初始化GPIOBPB8用于驅(qū)動(dòng)led

            GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6;//選中6腳

            GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;//配置浮空輸入

            GPIO_Init(GPIOB,&GPIO_InitStructure);//初始化GPIOBPB6腳連接外部中斷線6的中斷源

            //所有的端口都有外部中斷的能力,為了使用外部中斷線,端口必須配置為輸入模式

            }



            評(píng)論


            技術(shù)專區(qū)

            關(guān)閉