我有一个使用3线SPI (在USART 0上)与CAN控制器通信的应用程序。 我最近发现了一个振荡器启动错误,该错误导致MCLK从XT2 (6 MHz)恢复 到DCO (2 MHz)。 在这种情况下,USART时钟由SMCLK (6 MHz)提供。
如果没有错误,USART将正常运行。 当出现振荡器启动错误时,字节传输将加倍。 (即加载Tx缓冲区一次,传输两个相同的字节)。
我修复了原来的错误,问题消失了,但我可以通过手动将MCLK源更改为DCO来重新创建SPI问题。
对于每个Tx负载 ,USART发送两个字节的原因可能是什么?

