|
本帖最后由 陳聖文 于 2018-5-29 10:48 编辑
小弟我閱讀了官方的datasheet 直接對寄存器做控制
可不知為何,計數有跳,旗標有跳,但是沒跳進中斷
請各位大大幫忙解惑,感謝.
- /*主程式main*/
- {
- __GPIOA_CLK_ENABLE();//啟動GPIOA時鐘
- GPIOA->MODER |= GPIO_MODE_OUTPUT_PP<<(5*2) | GPIO_MODE_OUTPUT_PP<<(6*2) | GPIO_MODE_OUTPUT_PP<<(7*2) ;
- __TIM14_CLK_ENABLE();//啟動TIM14時鐘
- TIM14->SR &=~(TIM_SR_UIF); //先清除UIF位元
- TIM14->DIER |= TIM_DIER_UIE; //設定UIE(Update interrupt enable)啟動
- TIM14->PSC = 0x5; //設定預分頻器為5
- TIM14->ARR = 500; //設定計數值
- TIM14->CR1 |= TIM_CR1_CEN; //啟動計時器
- TIM14->SR &=~(TIM_SR_UIF); //先清除UIF位元
- while(1);
- }
- /*中斷程序*/
- void TIM14_IRQHandler(void)
- { if((TIM14->DIER&TIM_DIER_UIE)&&(TIM14->SR&TIM_SR_UIF))
- {
- GPIOA->ODR^=(1<<5);
- TIM14->SR&=(~TIM_SR_UIF);
- }
- }
复制代码
他會卡在
- HardFault_Handler\
- PROC
- EXPORT HardFault_Handler [WEAK]
- B .
- ENDP
复制代码
的B的那一行 |
|