用串口助手调试 串口1的接收超时

2019-07-20 17:35发布

手动发送结束后 就进入了超时中断 在超时中断中取走 数组 以及 计数    在主程序中向串口助手发送
这样 一切正常
我使用的是10ms定时器中断 在自动发送状态下 时间选择5ms 一个字节 就不正常了   
按说 触发不了定时中断 但测试发现 这样也能触发
TIM4_Init(99,7199);                //10ms 系统时钟72MHZ
         
void TIM4_Init(u16 arr,u16 psc)
{       
        NVIC_InitTypeDef NVIC_InitStructure;
        TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
       NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE);
       
       
        TIM_TimeBaseStructure.TIM_Period = arr;
        TIM_TimeBaseStructure.TIM_Prescaler =psc;
        TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
        TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
        TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure);

        TIM_ITConfig(TIM4,TIM_IT_Update,ENABLE );

                   
        NVIC_InitStructure.NVIC_IRQChannel = TIM4_IRQn;
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3 ;
        NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;               
        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;                       
        NVIC_Init(&NVIC_InitStructure);       
       
}

希望大家帮忙分析下。
0条回答

一周热门 更多>