使用场景:CH32V203F6P6作为SPI主机(同时使用UART作为调试口)
CH32V203C8T6作为SPI从机(同时使用UART作为调试口)
使用杜邦线进行SPI的链接,USB转TTL也是
但SPI主机发送消息时出现部分情况乱码的现象,开始想着加上CRC进行数据的校验,但发现只要一条数据出现错误之后,
之后的数据均发生错误,如果使用CRC校验的话,后面数据均舍弃,那不就没法进行下去了吗
所以想查一下到底是什么导致数据出错
最终排查出来的问题是:
当使用CH340芯片当USB转TTL的串口收发器时,SPI数据出现错误,注意是只要一接上这个USB转TTL的GND和RXD(因为我只用到了这两个引脚)
就会出现SPI数据出错,而且还只有但SPI主机有这个问题,SPI从机没有这个问题
我认为的原因是
PA2--UART TX
PA3--UART RX
PA4--SPI SCK
PA5--SPI MISO
PA6--SPI MOSI
看出来了吗 F6P6在PA2/PA3/PA4上没转弯
而C8T6在在PA2/PA3/PA4上转弯了,虽然来说不应该考虑两个引脚之间的干扰,但我使用杜邦线连接,没法和PCB上的电路相比,在前几年也
遇见过类似的现象,当时没在意,修改了引脚定义就好了(当时的芯片型号是STM32F103C8T6)
标签:PA2,PA3,UART,芯片,引脚,SPI,沁恒,--,bug From: https://www.cnblogs.com/Llingfeng/p/17199296.html