新手入门
- 积分
- 11
- 金钱
- 11
- 注册时间
- 2020-6-15
- 在线时间
- 4 小时
|
1金钱
在初始化的部分可以正常写入SD卡,但是创建任务后,在任务中却不能写入了,代码大体如下,大家帮帮忙吧!
void WriteTXTFile(char* pStrPath, char* szData)
{
FATFS fs;
FIL fil;
u32 len;
FILINFO finfo ;
FRESULT res; //文件系统返回信息
f_mount(0,&fs);//注册一个文件系统
res=f_open(&fil, pStrPath , FA_OPEN_EXISTING | FA_WRITE);
if(res!=FR_OK)
{
res=f_open(&fil, pStrPath , FA_CREATE_NEW | FA_WRITE);
}
f_stat ( pStrPath, &finfo );
f_lseek( &fil , finfo.fsize ) ;
res = f_write ( &fil , szData , strlen(szData) , &len ) ;
f_close( &fil );
f_mount(0, NULL);
}
char szWriteBuf[100];
char* dataPath = "FidData/data.txt";
void WriteTest(void)
{
memset(szWriteBuf,0,100);
sprintf(szWriteBuf,"TEST");
WriteTXTFile(dataPath, szWriteBuf);
}
int main(void)
{
//所有相关初始化,此处省略.......
WriteTest();//此处可以正常写入
OSInit(); //初始化UCOSII
OSTaskCreate(start_task,(void *)0,(OS_STK *)&START_TASK_STK[START_STK_SIZE-1],START_TASK_PRIO );//创建起始任务
OSStart();
}
//一个子任务,不写SD卡时LED可以正常闪烁
void led_task(void *pdata)
{
u8 t=0;
while(1)
{
t++;
delay_ms(10);
if(t==10)LED1=0; //LED1灭
if(t==200) //LED1亮
{
t=0;
LED1=1;
WriteTest();//此处写入失败
}
}
}
|
|