求助:STC8H2K17U单片机在某个.c文件中使用printf函数会使程序卡死|已解决
STC8H2K17U单片机在ADC.C使用printf打印时程序出现卡死情况,同个工程中的其它地方添加不会出现该情况。会不会你这个函数执行得太快了 在某个中断中执行?要确认串口中断优先级,调高串口的。
单片机不过是按照编译器生成的代码,一条一条的执行。
当程序出现卡死的情况,就得好好排查一下这个函数放在这个位置会不会产生BUG。
例如串口打印函数查询一个字节是否发送完成的用户标志,如果是在串口中断里面设置的。然后又在另一个中断(例如定时器中断)里面调用串口打印函数的话,默认两个中断优先级相同,就会产生相互锁死的情况。
串口中断需要等待定时器中断执行完才能运行并设置发送完成用户标志,定时器中断要收到用户完成标志后才能继续往下执行,双方就相互锁死。 问题已经解决,在不开EA的时候进行PRINTF打印就会出现这个问题。
页:
[1]