全球旧事资料 分类
选择第4组
接下来就是指定中断源的优先级,下面以一个简单的例子说明如何指定中断源的抢占式优先级和响应优先级:选择使用优先级分组第1组NVIC_PriorityGroupCo
figNVIC_PriorityGroup_1使能EXTI0中断NVIC_I
itStructureNVIC_IRQCha
elEXTI0_IRQCha
elNVIC_I
itStructureNVIC_IRQCha
elPreemptio
Priority1指定抢占式优先级别1NVIC_I
itStructureNVIC_IRQCha
elSubPriority0指定响应优先级别0NVIC_I
itStructureNVIC_IRQCha
elCmdENABLENVIC_I
itNVIC_I
itStructure使能EXTI9_5中断NVIC_I
itStructureNVIC_IRQCha
elEXTI9_5_IRQCha
elNVIC_I
itStructureNVIC_IRQCha
elPreemptio
Priority0指定抢占式优先级别0NVIC_I
itStructureNVIC_IRQCha
elSubPriority1指定响应优先级别1NVIC_I
itStructureNVIC_IRQCha
elCmdENABLENVIC_I
itNVIC_I
itStructure要注意的几点是:1)如果指定的抢占式优先级别或响应优先级别超出了选定的优先级分组所限定的范围,将可能得到意想不到的结果;2)抢占式优先级别相同的中断源之间没有嵌套关系;3)如果某个中断源被指定为某个抢占式优先级别,又没有其它中断源处于同一个抢占式优先级别,则可以为这个中断源指定任意有效的响应优先级别。二,开关总中断:在STM32CortexM3中是通过改变CPU的当前优先级来允许或禁止中断。
fPRIMASK位:只允许NMI和hardfault异常,其他中断异常都被屏蔽当前CPU优先级0。FAULTMASK位:只允许NMI,其他所有中断异常都被屏蔽当前CPU优先级1。在STM32固件库中stm32f10x_
vicc和stm32f10x_
vich定义了四个函数操作PRIMASK位和FAULTMASK位,改变CPU的当前优先级,从而达到控制所有中断的目的。下面两个函数等效于关闭总中断:voidNVIC_SETPRIMASKvoid;voidNVIC_SETFAULTMASKvoid;下面两个函数等效于开放总中断:voidNVIC_RESETPRIMASKvoid;voidNVIC_RESETFAULTMASKvoid;上面两组函数要成对使用,不能交叉使用。例如:第一种方法:NVIC_SETPRIMASK;关闭总中断NVIC_RESETPRIMASK;开放总中断第二种方法:NVIC_SETFAULTMASK;关闭总中断NVIC_RESETFAULTMASK;开放总中断常常使用NVIC_SETPRIMASKNVIC_RESETPRIMASKDisableI
terruptsE
ableI
terrupts
STM32时钟系统STM32资料200909231453阅读72评论0字号:大大中中小小在STM32中,有五个时钟源,为HSI、HSE、LSI、LSE、PLL。
①、HSI是高速内部时钟,RC振荡器,频率为8MHz。
f②、HSE是高速外部时钟,可接石英陶瓷谐振器,或者接外部时钟源,频率范围为4MHz16MHz。③、LSI是低速内部时钟,RC振荡器,频率为40kHz。④、LSE是低速外部时钟,接频率为32768kHz的石英晶体。⑤、PLL为锁r
好听全球资料 返回顶部