叶花永不相见 发表于 2022-9-27 17:21

STM32F407 在定时中断中向串口发送数据,为什么会陷入死循环

定时器中断服务函数代码如下:
//定时器TIM2(mcuitf接口的tm0)中断函数
void ir_func_tm0()
{
        if (TIM_GetITStatus(TIM2, TIM_IT_Update) == SET)
        {
                USART_SendData(USART1, 'A');
                while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);
                TIM_ClearITPendingBit(TIM2, TIM_IT_Update);
        }
}

为什么会陷入while循环里呀,好让人费解啊。请各位不吝赐教,万分感谢。

myscj007 发表于 2022-9-29 13:59

STM32F407 在定时中断中向串口发送数据,为什么会陷入死循环

你在一个中断中让他产生另一个中断,那你要看看你的中断的优先级的问题

天意无罪 发表于 2022-9-29 21:13

USART1的配置函数怎么写的?用串口工具看看能不能收到USART1发送的数据“A”字符不?

foxsbig 发表于 2022-10-2 14:05

只一个中断,能看出死循环来?
页: [1]
查看完整版本: STM32F407 在定时中断中向串口发送数据,为什么会陷入死循环