您好!
我在 Beagle Bone 上的一个复杂裸机应用程序中遇到问题、因为 UART 数据传输受到破坏。 更确切地说:在某些情况下(不确定具体条件)、UART 传输的单个位会花费太长的时间并损坏数据传输:

细红线表示单字节的边界。 这是在将上面的迹线与下面的迹线进行比较时发生的情况:
-第一个字节被正确传输
-在第二个字节中,停止位的长度在低位约为三倍->这是传输的问题
-在第三个字节中,最后一个数据位的长度在低位约为三倍 ->这是传输的问题
这都会导致用下面的浅蓝色线标记错误的字节长度。 在两种情况下、输出端的信号形状都很好、因此我认为外部硬件不存在问题。
最近我从编译器版本18LTS 切换到了 v20LTS、问题似乎消失了。 由于这不是正确的验证、而是更像是问题已解决的感觉、因此我的问题:
-编译器版本是否真的要对此行为负责?
-如果是,编译器 v20中的什么变化可能会修复这个问题?
谢谢!