找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 2629|回復: 0
收起左側

怎么無法修改stm32中斷分組配置寄存器?

[復制鏈接]
ID:98591 發(fā)表于 2016-7-30 17:51 | 顯示全部樓層 |閱讀模式
修改的時候有同時寫入0x05fa0000啊,后邊測試,一直無法搶占優(yōu)先級,while(1)中重新讀取AIRCR這個內容,發(fā)現(xiàn)沒有修改成功,分組配置還是上電復位時默認的。
#include<stm32f10x.h>
void delay(u32 z)
{
        while(z--);
}
int main()
{
        u32 temp;
//        RCC->APB2ENR|=(1<<6);//啟動端口E的時鐘//不能打開這個時鐘,否則出錯�。�!
        GPIOE->CRL|=0X000ccc00;//io口234為上拉輸入模式

        EXTI->IMR|=(1<<4)|(1<<3)|(1<<2);//允許外部中斷432中斷請求
        EXTI->FTSR|=(1<<4)|(1<<3)|(1<<2);//下降沿觸發(fā)

        NVIC->ISER[0]|=(1<<10)|(1<<9)|(1<<8);//打開nvic的外部中斷432允許請求
        temp=(SCB->AIRCR)&0x0000f8ff;//aircr寄存器中斷分組清零
        temp=temp|(1<<10)|(1<<9);//設置為組1模式
        temp|=0x05FA0000;//寫入鑰匙
        SCB->AIRCR=temp;//設置中斷分組:1位搶占優(yōu)先級,3位響應優(yōu)先級
        NVIC->IP[0]|=0X80800000;//設置中斷3.2優(yōu)先級:搶占優(yōu)先級1,響應優(yōu)先級0
        NVIC->IP[1]=0X00000070;//中斷 4優(yōu)先級:搶占式優(yōu)先級0,響應優(yōu)先級7
       

        RCC->APB2ENR|=0X01;
        AFIO->EXTICR[0]|=0X4400;
        AFIO->EXTICR[1]|=0X04; //打開afio時鐘,設置pe234為外部中斷


        RCC->APB2ENR|=(1<<4);
        GPIOC->CRL|=0X22222222;
        GPIOC->BSRR=0XFF;//初始化led燈的io口
        while(1)
        {
                GPIOC->BSRR=(SCB->AIRCR)>>8;//發(fā)現(xiàn)aircr寄存器無法寫入,依然是上電默認值
        }

}
//以下3個外部中斷函數(shù)均為led燈的閃爍操作
void EXTI2_IRQHandler()
{
        delay(6000000);
        GPIOC->BRR=0XFF;
        delay(6000000);
        GPIOC->BSRR=0XFF;
        delay(6000000);
        GPIOC->BRR=0XFF;
        delay(6000000);
        GPIOC->BSRR=0XFF;
        delay(6000000);
        GPIOC->BRR=0XFF;
        delay(6000000);
        GPIOC->BSRR=0XFF;
        EXTI->PR|=(1<<2);//清除外部中斷標志
}
void EXTI3_IRQHandler()
{

        delay(6000000);
        GPIOC->BRR=0XFF;
        delay(6000000);
        GPIOC->BSRR=0XFF;
        delay(6000000);
        GPIOC->BRR=0XFF;
        delay(6000000);
        GPIOC->BSRR=0XFF;
        delay(6000000);
        GPIOC->BRR=0XFF;
        delay(6000000);
        GPIOC->BSRR=0XFF;
        EXTI->PR|=(1<<3);
}
void EXTI4_IRQHandler()
{
        delay(600000);
        GPIOC->BRR=0XFF;
        delay(600000);
        GPIOC->BSRR=0XFF;
        delay(600000);
        GPIOC->BRR=0XFF;
        delay(600000);
        GPIOC->BSRR=0XFF;
        EXTI->PR|=(1<<4);
}


回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表