主机采用CH32V307RCT6 运行于(125MHz), 从机采用STM32F103, 运行于(72MHz), 设置一个波特率,如115200, 会出现两者都有一定的 误差。 主机CH32V与从机STM32的发送接收均采用 DMA, 主机CH32V通过 modbus读取 STM32F103的数据, 当读取寄存器个数在 30个以内时, 基本不出现失败, 当读取寄存器个数在 120个时, 出现失败的概率很高。 为了进一步测试, 主机CH32V发送采用一个串口(设置停止位为2个), 接收采用另一个串口(设置停止位为1个)。 STM32停止位设置位1.5个。 这种配置对 CH32V的接收 是最友好的, 可是依然会出现失败概率, 会低很多。
STM32是批量产品, 稳定工作了很多年了。 抓示波器波形, 发现stm32每次都返回数据, CH32V调试发现 CRC错误或 少数据。 当波特率达到 2M时, CH32V更是 有 40%以上的错误。 感觉CH32V串口的重同步机制有 BUG, 芯片的errata哪里可以下载