scfor123456 发表于 2019-9-10 16:01:25

3个关于中断的问题求助

1、例程里关于中断的设置有两种写法,有何区别?
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
NVIC_InitStructure.NVIC_IRQChannel = DMA1_Channel1_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x0;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);

/* Configure IT */
/* (8) Set priority for DMA1_Channel4_IRQn */
/* (9) Enable DMA1_Channel4_IRQn */
NVIC_SetPriority(DMA1_Channel4_IRQn, 0); /* (8) */
NVIC_EnableIRQ(DMA1_Channel4_IRQn); /* (9) */

2、SysTick_Handler的中断能关闭吗?
3、工程中core_cm4.h有两个,一个是自己添加的,一个是编译出来的(带有锁标识),有没有问题?

子曰好人 发表于 2019-9-10 16:33:20

1.没什么区别,写法不同而已
2.除了几个中断号为负的中断,其他都能关闭
3.带锁的意思是文件不可修改,没有问题。另外,你截图这个的意思是main.c依赖这几个不可修改的文件,而不是编译出来:)

scfor123456 发表于 2019-9-10 16:57:16

子曰好人 发表于 2019-9-10 16:33
1.没什么区别,写法不同而已
2.除了几个中断号为负的中断,其他都能关闭
3.带锁的意思是文件不可修改,没有 ...

1、有人说第一种写法是M3 M4的,第二中写法是M0的,反正M4用第二种写法也能进中断,但优先级什么的设置就有点问题。
3、为什么我自己添加的core_m4.h不能被包含,我想在__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks)函数里关掉系统时钟中断。

hejun96 发表于 2019-9-10 18:01:13

坛友您好,有关您的3个question:
Questoion1:例程里面的2种写法,都是关于中断控制器的配置代码
第一行代码是选择NVIC中断控制器的分组为1,中断优先级分组我记得和预分频系数有关,可以
查一下固件的misc.c和《STM32固件库手册》,我会加附手册。下面的(8)和(9)是
设置中断优先级通道和使能中断NVIC控制器,这个和上面的只是固件写法不一。
Question2:这个函数是系统嘀嗒定时器的处理函数,这个可以关闭
Question3:那个是STM32中的固件文件中的其中之一,带锁标识没有问题,带锁证明是只读属性,可以通过查找到相应文件右击"属性",把“Read Only”去掉。

子曰好人 发表于 2019-9-11 08:58:18

scfor123456 发表于 2019-9-10 16:57
1、有人说第一种写法是M3 M4的,第二中写法是M0的,反正M4用第二种写法也能进中断,但优先级什么的设置就 ...

1.你看下M0和M4权威指南咯
2.在main函数里面关掉系统中断也行啊,为何要在锁定了的文件里面改:o
页: [1]
查看完整版本: 3个关于中断的问题求助