金牌会员
- 积分
- 1547
- 金钱
- 1547
- 注册时间
- 2014-7-11
- 在线时间
- 256 小时
|
3金钱
原子哥,我用 STM32F407寄存器版做定时器初始化 死机#define BTIM_TIMX_INT3 TIM3
#define BTIM_TIMX_INT_IRQn3 TIM3_IRQn
#define BTIM_TIMX_INT_IRQHandler3 TIM3_DAC_IRQHandler
#define BTIM_TIMX_INT_CLK_ENABLE3() do{ RCC->APB1ENR |= 1 << 1; }while(0) /* TIM3 ê±Öóê1Äü */
void btim_timx_int_init3(uint16_t arr, uint16_t psc)
{
BTIM_TIMX_INT_CLK_ENABLE3();
BTIM_TIMX_INT3->ARR = arr; /* é趨¼ÆêyÆ÷×Ô¶ˉÖØ×°Öμ */
BTIM_TIMX_INT3->PSC = psc; /* éèÖÃÔ¤·ÖÆμÆ÷ */
BTIM_TIMX_INT3->DIER |= 1 << 0; /* ÔêDí¸üDÂÖD¶Ï */
BTIM_TIMX_INT3->CR1 |= 1 << 0; /* ê1Äü¶¨ê±Æ÷TIMX */
sys_nvic_init(1, 3, BTIM_TIMX_INT_IRQn3, 3); /* ÇàÕ¼1£¬×óóÅÏ輶3£¬×é2 *///TIM3_IRQn
}
void sys_nvic_init(uint8_t pprio, uint8_t sprio, uint8_t ch, uint8_t group)
{
uint32_t temp;
sys_nvic_priority_group_config(group); /* éèÖ÷Ö×é */
temp = pprio << (4 - group);
temp |= sprio & (0x0f >> group);
temp &= 0xf; /* è¡μíËÄλ */
NVIC->ISER[ch / 32] |= 1 << (ch % 32); /* ê1ÄüÖD¶Ïλ(òaÇå3yμÄ»°,éèÖÃICER¶Ôó|λÎa1¼′¿é) */
NVIC->IP[ch] |= temp << 4; /* éèÖÃÏìó|óÅÏ輶oíÇà¶ÏóÅÏ輶 */
}
在设置中断优先级时死机,请问是什么原因
|
|