|
我想进入DMA中断后进行U盘数据写入工作,但是执行到if(open)语句之后就会跑飞,跟踪语句后发现其在msc_fatfs.c文件卡死,如图;void DMA2_Stream0_IRQHandler(void){
FATFS fatfs;
FIL file; //Îļt¶ÔÏó
FRESULT res;
if(DMA_GetITStatus(DMA2_Stream0,DMA_IT_TCIF0)!=RESET)
{
DMA_ClearITPendingBit(DMA2_Stream0,DMA_IT_TCIF0);/*??????*/
for(i=0;i<=18;i++)
{
temp=(float)adcx*3.3/4096;
}
sprintf(a,"%f",temp[0]);
f_mount(0, &fatfs);
if(f_open(&file, "0:STM32.TXT",FA_OPEN_ALWAYS | FA_WRITE) == FR_OK)
{
bytesWritten=file.fsize;
f_lseek(&file,bytesWritten);
bytesToWrite = sizeof(a);
res= f_write (&file, a, bytesToWrite, (void *)&bytesWritten);
f_close(&file);
f_mount(0, NULL);
}
}
请问是为啥?
是不是因为中断进程内不能进行写U盘操作? |
|
-
卡在这个.c
-
|