主题中讨论的其他部件:UNIFLASH、 MAX232
大家好、
我尝试使用 UART 实现循环缓冲器。 在测试阶段、我只需在无限 while 循环内输出一个 ASCII 字符('a')。 在我断开电源并再次打开电源之前、它工作正常(延迟约30秒)。 此时、屏幕上开始出现一些随机字符、而不是 ASCII "A"。 每次上电后、我们都需要按复位开关才能正确打印字符。 我使用一些 Tivaware 示例测试了该示例、而不是使用直接寄存器访问程序模型。 它没有解决问题。 这里需要注意的一件有趣的事情是、它仅发生在9600波特率下。 当我将波特率从9600更改为115200时、代码开始按预期打印字符(它仅在第一个上电周期产生了问题、这是可以接受的)。 从 PC 端、我将其配置为9600 8-N-1。 我试过 PuTTY、TeraTerm、HyperTerminal 和 Arduino 串行监视器、但没有成功(teratern 甚至拒绝打印这些字符)。 当我重复使用 Arduino IDE 和 Arduino UNO 的实验时、它在所有软件中都能完美运行。 这种行为在本质上是随机的、即如果我在上电和断电之间没有超过几秒的延迟、问题就不会出现。 我在下面的主题中讨论了一个类似的问题、但此时在 UART 初始化和无限 while 循环之间设置延迟可以解决问题。
https://e2e.ti.com/support/microcontrollers/tiva_arm/f/908/t/534352
随附了一些屏幕截图供您参考。
如果有任何帮助,将不胜感激