找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

帖子
查看: 2603|回復(fù): 0
收起左側(cè)

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

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

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

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

        RCC->APB2ENR|=0X01;
        AFIO->EXTICR[0]|=0X4400;
        AFIO->EXTICR[1]|=0X04; //打開(kāi)afio時(shí)鐘,設(shè)置pe234為外部中斷


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

}
//以下3個(gè)外部中斷函數(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);//清除外部中斷標(biāo)志
}
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);
}


回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表