CH347F中的函数SPIstream(),波形错误。

 Read_buff[0]=0x00;

  Read_buff[1]=0x03;

CH347OpenDevice(0);

 ulong length=2;

 bool databits = CH347SPI_SetDataBits(0, 0x01); // SPI data total 16bit   

CH347SPI_Init(0, ref Tracy_SPI_cfg);

CH347StreamSPI4(0,0x80,2,Read_buff );

image.png

波形可以看到,SDI发送的是1100 0000,01000000.由于是LSB低位在前,发送数据为0x03,和0x02.但是我赋值的是0x00,0x03,0x03是完全匹配的,但是后一个字节和我赋值的0x00不一致。


还有一个问题,我数组赋值后赋0x30,但是发送的时候,却是先发送的。读取也是,SDO上先读到的存在后面去了。这都是什么逻辑?


SPI_read,SPI_Writeread,SPI_stream没有一个方法是OK的,要么SDO读取有问题,要么SDI发送有问题。你们公司发布的产品确确实实验证OK了吗?还是说DLL库文件有问题?


SPI_write()函数是完全正确的。可能因为不涉及读取SDO数据吧。CH347F是不是在同步读取数据这一块有bug


可以啦可以啦。CH347SPI_SetDataBits赋值0x00,设为8bit一次。然后在初始化中把所有间隔设为0


好的,有问题随时与我们沟通。如遇问题,结合硬件SPI排查会更快些。

相关SPI编程参考:https://blog.csdn.net/WCH_TechGroup/article/details/132173785 


只有登录才能回复,可以选择微信账号登录