在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,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>

            新聞中心

            STM32 EXIT

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

            本文引用地址:http://www.biyoush.com/article/201611/316940.htm

            這張圖是一條外部中斷線或外部事件線的示意圖,途中信號線上劃有一條斜線,旁邊標志19字樣的注釋,表示這樣的線路共有19套,途中的藍色虛線箭頭,標出了外部中斷信號的傳輸路徑,首先外部信號從編號1的芯片管腳進入,經(jīng)過編號2的邊沿檢測電路,通過編號3的或門進入中斷掛起請求寄存器,最后經(jīng)過編號4的與門輸入到NVIC中斷控制器,在這個通道上游4個控制選項,外部的信號收件經(jīng)過邊沿檢測電路,這個邊沿檢測電路受上升沿或下降沿選擇寄存器控制,用戶可以使用這兩個寄存器控制需要哪一個邊沿產(chǎn)生中斷,因為選擇上升沿或下降沿是分別受2個平行的寄存器控制,所以用戶可以同時選擇上升沿或是下降沿,而如果只有一個寄存器控制,那么只能選擇一個邊沿了,接下來是編號3的或門,這個或門的另一個輸入時“軟件中斷/事件寄存器”,從這里可以看出,軟件可以優(yōu)先于外部信號請求一個中斷或事件,即當(dāng)“軟件中斷/事件寄存器”的對應(yīng)位為1時,不管外部信號如何,編號3的或門都會輸出有效信號。

            一個中斷或事件請求信號經(jīng)過編號3的或門后,進入掛起請求寄存器到此之前,中斷和事件的信號傳輸通路都是一致的,也就是說,掛起請求寄存器中記錄了外部信號的電平變化,外部請求信號最后經(jīng)過編號4的與門,向NVIC中斷控制器發(fā)出一個中斷請求,如果中斷屏蔽寄存器的對應(yīng)位為0,則該請求信號不能傳輸?shù)脚c門的另一端,實現(xiàn)了中斷的屏蔽

            途中的紅色箭頭,標出了外部事件信號的傳輸路徑,外部請求信號經(jīng)過編號3的或門后,進入編號5的郁悶,這個與門的作用于編號4的與門類似,用于引入事件屏蔽寄存器的控制;最后脈沖發(fā)生器把一個跳變的信號轉(zhuǎn)變位一個單脈沖,輸出到芯片中的其他功能,

            從這張圖中可以看出,從外部激勵信號來看,中斷和事件是沒有分別的,只是在芯片內(nèi)部分開,一路信號會向CPU產(chǎn)生中斷請求,另一路信號會向其他功能模塊發(fā)送脈沖觸發(fā)信號,其他功能模塊如何響應(yīng)這個信號,則由對應(yīng)的模塊自己決定。

            在圖上部的APB總線和外設(shè)模塊接口,是每一個功能模塊都有的部分

            總結(jié):

            中斷請求:當(dāng)產(chǎn)生中斷的時候,會執(zhí)行對應(yīng)的中斷處理程序

            事件請求:當(dāng)產(chǎn)生事件的時候,會想向其他模塊發(fā)送觸發(fā)信號,對于其他模塊如何處理這個信號,則由模塊自己決定!

            #include"exti.h"

            voidEXTI_Config(void)
            {
            EXTI_GPIO_Config();
            EXTI_InitStructure();

            }

            voidEXTI_GPIO_Config(void)
            {
            GPIO_InitTypeDefGPIO_InitStructure;

            RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE|RCC_APB2Periph_GPIOB|RCC_APB2Periph_AFIO,ENABLE);


            NVIC_Exti();

            GPIO_InitStructure.GPIO_Pin=GPIO_Pin_14|GPIO_Pin_15;
            GPIO_InitStructure.GPIO_Speed=GPIO_Speed_10MHz;
            GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;//上拉輸
            GPIO_Init(GPIOE,&GPIO_InitStructure);

            GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10|GPIO_Pin_11;
            GPIO_InitStructure.GPIO_Speed=GPIO_Speed_10MHz;
            GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;
            GPIO_Init(GPIOB,&GPIO_InitStructure);
            }

            voidEXTI_InitStructure(void)
            {
            EXTI_InitTypeDefEXTI_InitStructure;
            EXTI_InitStructure.EXTI_Line=EXTI_Line14;
            EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;
            EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Falling;
            EXTI_InitStructure.EXTI_LineCmd=ENABLE;
            EXTI_Init(&EXTI_InitStructure);
            }

            voidNVIC_Exti(void)
            {
            NVIC_InitTypeDefNVIC_InitStructure;
            NVIC_InitStructure.NVIC_IRQChannel=EXTI15_10_IRQn;
            NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;
            NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;
            NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
            NVIC_Init(&NVIC_InitStructure);
            }



            /*********************************************************************************
            *********************************************************************************/
            #include"exti.h"

            /*
            *函數(shù)名:NVIC_Configuration
            *描述:配置嵌套向量中斷控制器NVIC
            *輸入:無
            *輸出:無
            *調(diào)用:內(nèi)部調(diào)用
            */
            staticvoidNVIC_Configuration(void)
            {
            NVIC_InitTypeDefNVIC_InitStructure;

            /*Configureonebitforpreemptionpriority*/
            NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);

            /*配置P[A|B|C|D|E]0為中斷源*/
            NVIC_InitStructure.NVIC_IRQChannel=EXTI0_IRQn;
            NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;
            NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;
            NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
            NVIC_Init(&NVIC_InitStructure);
            }

            /*
            *函數(shù)名:EXTI_PB0_Config
            *描述:配置PB0為線中斷口,并設(shè)置中斷優(yōu)先級
            *輸入:無
            *輸出:無
            *調(diào)用:外部調(diào)用
            */
            voidEXTI_PB0_Config(void)
            {
            GPIO_InitTypeDefGPIO_InitStructure;
            EXTI_InitTypeDefEXTI_InitStructure;

            /*configtheextiline(PB0)clockandAFIOclock*/
            RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_AFIO,ENABLE);

            /*configtheNVIC(PB0)*/
            NVIC_Configuration();

            /*EXTIlinegpioconfig(PB0)*/
            GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;
            GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPD;//上拉輸入
            GPIO_Init(GPIOB,&GPIO_InitStructure);

            /*EXTIline(PB0)modeconfig*/
            GPIO_EXTILineConfig(GPIO_PortSourceGPIOB,GPIO_PinSource0);
            EXTI_InitStructure.EXTI_Line=EXTI_Line0;
            EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;
            EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Falling;//下降沿中斷
            EXTI_InitStructure.EXTI_LineCmd=ENABLE;
            EXTI_Init(&EXTI_InitStructure);
            }



            /*********************************************************************************
            *********************************************************************************/
            #include"stm32f10x_it.h"
            voidEXTI15_10_Handler(void)
            {
            if(EXTI_GetITStatus(EXTI_Line14)!=RESET)//確認產(chǎn)生了EXTILine中斷
            {

            GPIO_ResetBits(GPIOE,GPIO_Pin_3);
            EXTI_ClearITPendingBit(EXTI_Line14);//清除中斷標志位
            }
            }





            /*
            *注意:中斷服務(wù)程序函數(shù)名有兩種命名方法
            *EXTI0_IRQHandler
            *EXTI9_5_IRQHandler
            *
            *
            *
            *
            *
            */



            關(guān)鍵詞: STM32EXIT外部IO中

            評論


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

            關(guān)閉