f_write 失敗
本帖最后由 iriss 于 2023-7-12 17:10 编辑在stm32f4 測試sd卡 寫個簡單測試
文件打得開但寫入跟關閉都失敗err =1
請問 需要檢查哪裡或調整?
還有是因為上述的失敗
所以sd卡內沒有test.txt這個文件 ??
不是有f_open成功就會產生文件在sd卡內??
感謝
// open
fs_handle.retSD = f_open(&fs_handle.SDFile, "test.txt", FA_CREATE_ALWAYS | FA_WRITE);
//if (fs_handle.retSD!= FR_OK) {
db_printf(DB_ALWAYS,"f_open fail:%d\n",fs_handle.retSD);
// }
// write
char* data = "Hello, world!";
UINT bytes_written;
fs_handle.retSD = f_write(&fs_handle.SDFile, data, strlen(data), &bytes_written);
// if (fs_handle.retSD != FR_OK) {
db_printf(DB_ALWAYS,"f_write fail:%d\n",fs_handle.retSD);
//}
// close
fs_handle.retSD= f_close(&fs_handle.SDFile);
// if (fs_handle.retSD != FR_OK) {
db_printf(DB_ALWAYS,"f_close fail:%d\n",fs_handle.retSD);
// }
一開始測試是用128G, 剛剛發現改2G卡就可以寫入成功, 想說是跟128卡跟exfat有關嗎?
iriss 发表于 2023-7-13 09:02
一開始測試是用128G, 剛剛發現改2G卡就可以寫入成功, 想說是跟128卡跟exfat有關嗎?
128G卡要开exFAT 感謝回覆!!
我還想請問
f_write 只能寫入char 型態
但我實驗的數據存在浮點數陣列
跟網路上操作
char SensorBuff;
uint8_t log_array={1,2,3,4};
if(f_open(&fs_handle.SDFile,(const char*)"Sensor.csv",FA_OPEN_APPEND | FA_WRITE | FA_READ) == FR_OK){
sprintf(SensorBuff, "Item,Temp,Humi,Light\r\n");
f_write(&fs_handle.SDFile,SensorBuff,strlen(SensorBuff),&byteswritten);
sprintf(SensorBuff, "%d,",log_array);
f_write(&fs_handle.SDFile,SensorBuff,strlen(SensorBuff),&byteswritten);
sprintf(SensorBuff, "%d,",log_array);
f_write(&fs_handle.SDFile,SensorBuff,strlen(SensorBuff),&byteswritten);
sprintf(SensorBuff, "%d,",log_array);
f_write(&fs_handle.SDFile,SensorBuff,strlen(SensorBuff),&byteswritten);
sprintf(SensorBuff, "%d,",log_array);
f_write(&fs_handle.SDFile,SensorBuff,strlen(SensorBuff),&byteswritten);
}
確實是要存成char才能寫入
但是陣列有點大,
請問想把整個浮點數陣列存在char 陣列
?請問有簡化一點的語法嗎??感謝 iriss 发表于 2023-7-13 17:38
感謝回覆!!
我還想請問
使用结构体封装下,获取结构体变量地址和字节大小,整体写入即可。
类似此贴:
实战技能分享,各种数据类型的SPI, UART, I2C,FDCAN等方式的通信传输以及存储到EEPROM, Flash等设备的简易实现方法
https://www.armbbs.cn/forum.php?mod=viewthread&tid=109659&fromuid=58
(出处: 硬汉嵌入式论坛)
請問我看網路上有直接寫入整數陣列,也有人說需char才能寫入
我自己測試 寫入整數陣列
uint8_t log_array;
for(int i = 0; i < 4; i++){
log_array=i*10;}
f_write(&fs_handle.SDFile,log_array,4,&byteswritten);
測試完打開txt檔 卻是獲得\00\00\00\00
想請問它的限制??感謝
页:
[1]