關(guān)于CH347F中SPI_Read()函數(shù)

為什么SPI_Read()調(diào)用后,第一次SPI通訊時鐘數(shù)不對,主機發(fā)送的數(shù)據(jù)也不對,第二次才正常,16個clk位,數(shù)據(jù)也正確。

函數(shù)調(diào)用參數(shù)賦值如下:

?ulong length=2;

??CH347SPI_Read(0,0x80,2,ref length,Read_buff)

1727407390309639.jpg

1727407390104278.jpg



熱門產(chǎn)品 : USB3.0 HUB控制器:CH634

就是我做了一個WPF的窗口,想通過此方法去和我的芯片進行SPI通信。輸入adress后轉(zhuǎn)為byte類型賦給read_buffer,點擊read按鈕進入對應的block,SPI初始化后,進行read操作。但是read按鈕第一下點擊,clk數(shù)量不對,點擊第二下,才正常

image.png


您好,可將API修改為CH347SPI_Read(0,0x80,0,ref length,Read_buff)來完成只讀操作,該API調(diào)用時,若oLength設置長度,則會先進行寫操作,再進行后續(xù)的讀操作,設置為0則為只讀應用。


OK啦,OK啦。

現(xiàn)在是正確的,我之前把SPI_SetDataBits()寫在SPI_Init后面了,然后SPI_READ估計錯亂了,正確的時序是先調(diào)用Init方法,緊跟著就SPI_read()

image.png



SPI_read()函數(shù),指定一個buffer[]數(shù)組,波形都沒問題,就是讀取結(jié)果為FF,然后用SPI_WriteRead()函數(shù),更奇怪了,buffer[0]是后發(fā)送的,buffer[1]先發(fā)送,然后返回值是先讀取的賦給buffer[1]

這些都是什么邏輯?

另外,我buff這么聲明OK的吧

image.png

image.png

發(fā)送兩個字節(jié),讀取兩個字節(jié)。16個clk,讀取的兩個字節(jié)是前八個和后八個clk對應的MISO信號是吧?問題到底在哪



以及,你所說的寫和讀,是針對從機的嗎?讀取從機對應地址中的數(shù)值,還是說讀取MISO的返回值?官方手冊的內(nèi)容太潦草了。本來很簡單的調(diào)用函數(shù),賦值,手冊上只提供了形參,連調(diào)用都懶得寫。導致使用者一頭霧水


可以啦可以啦。CH347SPI_SetDataBits賦值0x00,設為8bit一次。然后在初始化中把所有間隔設為0


好的,有問題隨時與我們溝通。如遇問題,結(jié)合硬件SPI排查會更快些。

相關(guān)SPI編程參考:https://blog.csdn.net/WCH_TechGroup/article/details/132173785?


只有登錄才能回復,可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频