|
我在主程序里启用了一个6MHz的定时器TIM6,设置以后调试时,只要一进主程序的循环就卡死,中断调试显示一直在中断里出不来。想请教一下各位这是什么原因。
程序代码如下
int main(void)
{
bsp_Init(); /* 硬件初始化 */
uint8_t ucKeyCode; /* 按键代码 */
/* 先做个LED1的亮灭显示 */
bsp_LedOn(1);
bsp_DelayMS(100);
bsp_LedOff(1);
bsp_DelayMS(100);
bsp_StartAutoTimer(0, 100); /* 启动1个100ms的自动重装的定时器 */
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_4, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_2, GPIO_PIN_SET);
bsp_SetTIMforInt(TIM6, 6000000, 0, 5);
/* 进入主程序循环体 */
while (1)
{
// bsp_Idle(); /* 这个函数在bsp.c文件。用户可以修改这个函数实现CPU休眠和喂狗 */
/* 判断定时器超时时间 */
if (bsp_CheckTimer(0))
{
/* 每隔100ms 进来一次 */
bsp_LedToggle(1);
}
}
void TIM6_DAC_IRQHandler(void)
{
if((TIM6->SR & TIM_FLAG_UPDATE) != RESET)
{
// OV7670_test();
TIM6->SR = ~ TIM_FLAG_UPDATE;
//添加用户代码
}
}
|
|