加看门狗复位试试
50us 就是 2万次每秒,恨块很频繁。在这样频繁的中断中用 2 个 printf, CPU 会忙不过来的(printf 很费时间的)
你可以自己测试一下,不用中断,自己编写一个 2万次的循环,测试一下代码的运行时间
如果按照115200的波特率来算,1/115200*1000000000=8680ns传输一位数据,也就是8.6us一个位,如果传输一个8位数据就要86us,你这程序中用了两个打印,光是传输一个8位串口数据就需要86us,你加两个打印50us的时间,不管怎么算都不够,设置一个8位数据的传输时间都不够,程序不跑飞才奇怪