WCH沁恒单片机
直播中

贾飞小

7年用户 1754经验值
私信 关注
[问答]

ch32v203的spi不能正确读取数据是什么原因?如何处理?


按照上面接线,三线的spi传感器,用STM32f4的mcu芯片能正确读取传感器数据,而用ch32v203就读出错误数据。
两种mcu的程序都是采用全双工,尝试过半双工,两个mcu都无法正确读取数据。不知道是ch32v203代码问题,还是接线问题,目前两个mcu的spi 配置,接线都是一样的。

ch32v203用的hsi内部时钟,




  

回帖(3)

汤敏树

2022-6-16 14:51:11
您好,你可以先根据使用的芯片型号,判断一下工程的宏定义、启动文件以及ld文件的FLASH和RAM大小是否配置正确,具体配置方式见附件。此外,进行发送和接收时,需要加上对发送缓冲区和接收缓冲区的判断,你的程序应该是有问题的。在我们EVT中有SPI相关例程,你可以参考一下
举报

刘慧

2022-6-16 14:51:33
FLASH和RAM大小是否配置正确 配置过了,
接收发送缓存也判断了,evt例程中的半双工只有host  的中断发送,没有host 接收数据,这例程参考不了。 半双工仍然接收不了正确数据,其中试过下图设置,仍然不能接收正确数据,就是将单线设置只发送,或只接收。
全双工的接线方式会出现 mcu发送的数据直接到mcu接收寄存器,因为线是直接连着的,后面mcu接收寄存器还会接收一个传感器的数据,缓存只能多保存一位,这就造成了,数据错位,与数据丢失的情况。
这个ch32v203能不能设置在mcu发送数据的时候,接收数据寄存器关闭,不接收任何数据,mcu发送完成后,接收寄存器才开始工作?


举报

陶天瑛

2022-6-16 14:51:45
您好,若需要单线半双工例程,可参考下附件CH32V103例程,基本差不多。关于最后你所问的,其实就是SPI半双工模式,这个是支持的。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分