【求助!】CH376T+STM32,SPI方式讀寫SD卡,只能創(chuàng)建文件不能寫入

SPI-CH376T.png

CH376T開發(fā)遇到問題,SPI方式,只有復位重啟或者燒錄后自動重啟才能成功在SD卡中創(chuàng)建文件,斷電再通電就沒有成功創(chuàng)建文件,向文件中寫數(shù)據(jù)也沒成功,創(chuàng)建的文件內(nèi)有一個空格字符,請幫忙檢查下原理圖是否有錯誤。如果不是硬件問題,求教軟件可能是在什么步驟出錯才會有這種現(xiàn)象

一:硬件方面,晶振建議加15p的匹配電容

二:376是進行到哪一步出問題,返回值是多少

三:INT腳沒有接,你程序的中斷是怎么處理的?SDO兼做中斷輸出嗎?



晶振測得XO和XI電壓分別是1.42V和1.36V,應該是啟振了
沒有讀取376返回值,直接延時等待處理的
問題可能出在沒有獲取中斷上?程序只簡單初始化了SPI,下面是測試程序

void SD_card_test(void)

{

SPI3_CS_H;

delay_us(30);

SPI3_CS_L;

Send_SD_Data(USB_INT_CONNECT);

delay_us(2);

Send_SD_Data(SD_MODE);

delay_us(2);

SPI3_CS_H;

delay_us(30);

Send_SD_Command(CMD0H_DISK_CONNECT);

Send_SD_Command(CMD0H_DISK_MOUNT);

HAL_Delay(200);

SPI3_CS_L;

Send_SD_Data(CMD10_SET_FILE_NAME);

delay_us(2);

HAL_SPI_Transmit(&hspi3,"\\ABC.TXT\0",9,100);

SPI3_CS_H;

HAL_Delay(10);

Send_SD_Command(CMD0H_FILE_CREATE);

HAL_Delay(200);

Send_SD_Command(CMD01_GET_STATUS)

SPI3_CS_L;

Send_SD_Data(CMD2H_BYTE_WRITE);

delay_us(2);

Send_SD_Data(28);

delay_us(5);

Send_SD_Data(CMD01_WR_REQ_DATA);

delay_us(5);

HAL_SPI_Transmit(&hspi3,"123456789012345678901234567\0",28,100);//28

SPI3_CS_H;

HAL_Delay(10);

SPI3_CS_L;

Send_SD_Data(CMD1H_FILE_CLOSE);

delay_us(2);

Send_SD_Data(1);

SPI3_CS_H;

}

void Send_SD_Data(uint8_t Data)

{

HAL_SPI_Transmit(&hspi3,&Data,1,100);

}

void Send_SD_Command(uint8_t CMD)

{

SPI3_CS_L;

HAL_SPI_Transmit(&hspi3,&CMD,1,100);

delay_us(2);

SPI3_CS_H;

delay_us(5);

}



你沒有做任何中斷處理嗎?

你聯(lián)系這個郵箱xcc@wch.cn給你發(fā)一份參考代碼吧


好的,已發(fā)郵件


請問用SDO做兼容中斷輸出,DISK_MOUNT(31H)之后,獲取到SDO中斷,GET_STATUS(22H)讀取到中斷狀態(tài)也是22H是什么原因?


這是 SPI 命令沒發(fā)成功,發(fā)送的值又被讀回來,命令碼和數(shù)據(jù)之間需要時間間隔,命令與數(shù)據(jù)間一般 2us,數(shù)據(jù)與數(shù)據(jù)間一般 1us,有中斷的命令,等待中斷通知后再讀取值。


感謝,延長delay之后可以讀到正確的中斷狀態(tài)了
目前遇到新的問題:讀取mount中斷成功之后創(chuàng)建的文件名是亂碼,不處理中斷直接創(chuàng)建反而是正確文件名。
請問可能是什么原因造成的亂碼?create中斷返回值也是創(chuàng)建成功14H
image.png


中斷未處理,是指創(chuàng)建文件后還是disk_mount?disk_mount該命令用于初始化磁盤并測試磁盤是否就緒。新連接的 USB 存儲設備或者 SD 卡必須通過該命令進行初始化后,然后才能進行文件操作
創(chuàng)建文件有我們官方封好的函數(shù),你使用的是例程還是自己寫的


在官方函數(shù)的基礎上修改的,亂碼原因已經(jīng)找到,有一步片選操作錯誤


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

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