找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2255|回复: 0
收起左侧

怎么无法修改stm32中断分组配置寄存器?

[复制链接]
ID:98591 发表于 2016-7-30 17:51 | 显示全部楼层 |阅读模式
修改的时候有同时写入0x05fa0000啊,后边测试,一直无法抢占优先级,while(1)中重新读取AIRCR这个内容,发现没有修改成功,分组配置还是上电复位时默认的。
#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);//下降沿触发

        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位抢占优先级,3位响应优先级
        NVIC->IP[0]|=0X80800000;//设置中断3.2优先级:抢占优先级1,响应优先级0
        NVIC->IP[1]=0X00000070;//中断 4优先级:抢占式优先级0,响应优先级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;//发现aircr寄存器无法写入,依然是上电默认值
        }

}
//以下3个外部中断函数均为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);
}


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表