请教STM32中NVIC寄存器位移含义
查看NVIC_EnableIRQ函数原型,任意代入一个IRQn,如: USART1_IRQn = 37, /*!< USART1 global Interrupt */
__STATIC_INLINE void NVIC_EnableIRQ(IRQn_Type IRQn)
{
NVIC->ISER[(((uint32_t)(int32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)(int32_t)IRQn) & 0x1FUL));
}
后段:(uint32_t)(1UL << (((uint32_t)(int32_t)IRQn) & 0x1FUL)); 不明,有没专家解惑。 你看手册就能搞明白的啊。与0x1FUL与是为了保留位置0,避免超出范围了。只有32个中断 yuyu87 发表于 2023-10-16 20:24
你看手册就能搞明白的啊。与0x1FUL与是为了保留位置0,避免超出范围了。只有32个中断 ...
(引用自2楼)
明白了,昨天头炸掉,思考卡死一点,后边位移错,一直对不上。。。。
页:
[1]