标签:ini 就是 res else get string lin always 16进制
因为存为TXT可以实现,但是读取TXT里边的数据总是不尽如人意,所以,最终存为bin文件了。
先摘几个观点:
http://www.openedv.com/posts/list/36712.htm “文本文件存储的都是ASCII内容,如果你以16进制格式显示出来,那就是ASCII的内码。”
http://www.openedv.com/posts/list/58089.htm“ 你这种不要存.txt了,直接存.bin就是了。你先学会存一个字节数据,... ”
实现的部分代码(读写bin文件)(其他可以借鉴 原子的FATFS相关实例等 http://www.openedv.com/forums/show/0/2/0/55.htm)
u32 sd_size;
FIL file;
FRESULT res;
UINT bw;
UINT br;//ʵ¼Ê¶ÁÈ¡µ½µÄ×Ö½ÚÊý
// SD ¿¨
while(SD_Initialize())//¼ì²â²»µ½SD¿¨
{
//LCD_ShowString(60,170,200,16,16,"SD Card Error!");
printf("\r\nSD Card Error!\r\n");
delay_ms(500);
//LCD_ShowString(60,170,200,16,16,"Please Check! ");
printf("\r\nSD Card Error!\r\n");
delay_ms(500);
}
printf("\r\nSD Card OKr\n");
printf("\r\nSD Card Size: MB\r\n");
sd_size=SD_GetSectorCount();//µÃµ½ÉÈÇøÊý
printf("\r\nsd_size:%d\r\n",sd_size);
f_mount(fs[0],"0:",1); //¹ÒÔØSD¿¨
res=f_open(&file,"0:/Test.bin",FA_CREATE_ALWAYS | FA_WRITE );
if(res != FR_OK)
{
printf("\r\nOpen file error!\r\n");
}
else
{
if(res == FR_OK)
{
iTemp=13;
res = f_write(&file, &iTemp, sizeof(iTemp), &bw); /* Write it to the dst file */
//res = f_write(&file, "\r\n",2, &bw); /* Write it to the dst file */
iTemp=1;
res = f_write(&file, &iTemp, sizeof(iTemp), &bw); /* Write it to the dst file */
printf("\r\nwrite data ok!\r\n");
}
else
{
printf("\r\nwrite data error!\r\n");
}
}
f_close(&file);
res=f_open(&file,"0:/Test.bin",FA_OPEN_EXISTING|FA_READ);//
if(res!=FR_OK)
{
printf("\r\n f_open() fail .. \r\n");
}
else
{
printf("\r\n f_open() success .. \r\n");
}
while(!f_eof(&file))
{
iBuf=0;
res = f_read(&file, &iTemp, sizeof(u16), &br);//¶ÁÈ¡Ò»¸ö16λµÄÊý¾Ý
if(res==FR_OK)
{
iBuf++;
printf("%d \r\n",iTemp);
}
else
{
printf("\r\n f_read() fail .. \r\n");
}
}
f_close(&file);
f_mount(fs[0],"0:",NULL);
标签:ini 就是 res else get string lin always 16进制
原文地址:https://www.cnblogs.com/zhangbing12304/p/11375178.html