用定时器3的中断控制串口的发送时,加上while(1)判断是否发送完毕就会影响主程序的运行,不加这句串口也不能正常发送数据但是LED灯会正常翻转。哪位大神能帮忙解决一下。
void TIM3_IRQHandler(void)
{
if(TIM_GetITStatus(TIM3,TIM_IT_Update))
{
u8 size = sizeof(SEND_LEN);
u8 t = 0;
LED1=!LED1;//DS1·­×ª
for(t=0;t<size;t++)
{
USART_SendData(USART1,SEND_LEN[t]);
//while(USART_GetFlagStatus(USART1,USART_FLAG_TC)); //Öжϲ»ÄÜÖ´ÐÐÕâ¸öÓï¾ä
}
}
TIM_ClearITPendingBit(TIM3,TIM_IT_Update);
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
改为 while(USART_GetFlagStatus(USART1,USART_FLAG_TC)==RESET);试试
一周热门 更多>