按照上面接線,三線的spi傳感器,用stm32f4的mcu芯片能正確讀取傳感器數(shù)據(jù),而用ch32v203就讀出錯(cuò)誤數(shù)據(jù)。
兩種mcu的程序都是采用全雙工,嘗試過(guò)半雙工,兩個(gè)mcu都無(wú)法正確讀取數(shù)據(jù)。不知道是ch32v203代碼問(wèn)題,還是接線問(wèn)題,目前兩個(gè)mcu的spi 配置,接線都是一樣的。
ch32v203用的hsi內(nèi)部時(shí)鐘,
按照上面接線,三線的spi傳感器,用stm32f4的mcu芯片能正確讀取傳感器數(shù)據(jù),而用ch32v203就讀出錯(cuò)誤數(shù)據(jù)。
兩種mcu的程序都是采用全雙工,嘗試過(guò)半雙工,兩個(gè)mcu都無(wú)法正確讀取數(shù)據(jù)。不知道是ch32v203代碼問(wèn)題,還是接線問(wèn)題,目前兩個(gè)mcu的spi 配置,接線都是一樣的。
ch32v203用的hsi內(nèi)部時(shí)鐘,
您好,你可以先根據(jù)使用的芯片型號(hào),判斷一下工程的宏定義、啟動(dòng)文件以及l(fā)d文件的FLASH和RAM大小是否配置正確,具體配置方式見(jiàn)附件。此外,進(jìn)行發(fā)送和接收時(shí),需要加上對(duì)發(fā)送緩沖區(qū)和接收緩沖區(qū)的判斷,你的程序應(yīng)該是有問(wèn)題的。在我們EVT中有SPI相關(guān)例程,你可以參考一下。
CH32V203 EVT:http://www.findthetime.net/downloads/CH32V20xEVT_ZIP.html
?
FLASH和RAM大小是否配置正確 配置過(guò)了,
接收發(fā)送緩存也判斷了,evt例程中的半雙工只有host? 的中斷發(fā)送,沒(méi)有host 接收數(shù)據(jù),這例程參考不了。 半雙工仍然接收不了正確數(shù)據(jù),其中試過(guò)下圖設(shè)置,仍然不能接收正確數(shù)據(jù),就是將單線設(shè)置只發(fā)送,或只接收。
全雙工的接線方式會(huì)出現(xiàn) mcu發(fā)送的數(shù)據(jù)直接到mcu接收寄存器,因?yàn)榫€是直接連著的,后面mcu接收寄存器還會(huì)接收一個(gè)傳感器的數(shù)據(jù),緩存只能多保存一位,這就造成了,數(shù)據(jù)錯(cuò)位,與數(shù)據(jù)丟失的情況。
這個(gè)ch32v203能不能設(shè)置在mcu發(fā)送數(shù)據(jù)的時(shí)候,接收數(shù)據(jù)寄存器關(guān)閉,不接收任何數(shù)據(jù),mcu發(fā)送完成后,接收寄存器才開(kāi)始工作?
您好,若需要單線半雙工例程,可參考下附件CH32V103例程,基本差不多。關(guān)于最后你所問(wèn)的,其實(shí)就是SPI半雙工模式,這個(gè)是支持的。此外,請(qǐng)問(wèn)一下你的使用場(chǎng)景是一主一從還是一主多從,若方便,可將你STM32例程以及CH32V203的例程發(fā)到我的郵箱(lzs@wch.cn),我這邊看一下。后續(xù)若有問(wèn)題,也可通過(guò)郵箱和我溝通。
46、SPI-單工通信(1條時(shí)鐘線和1條雙向數(shù)據(jù)線),主機(jī)接收從機(jī)發(fā)送.zip