OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2655|回复: 2

在写文件(f_write)的时候跳硬件中断

[复制链接]

2

主题

7

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2016-4-28
在线时间
7 小时
发表于 2016-10-15 22:56:24 | 显示全部楼层 |阅读模式
ret=f_open(&fil,"0:/DATA.txt", FA_WRITE | FA_CREATE_ALWAYS);

        if(ret!=0){printf("文件打开失败");}
        ret=f_write(&fil,buffer,100,fwp);
    if(ret!=0){printf("%d",ret);}       
        f_close(&fil);
        ret=f_open(&fil,"0:/DATA.txt", FA_READ );
        if(ret!=0){printf("文件打开失败");}
        f_read(&fil,Dataprint,150,fwp);
        f_close(&fil);
        printf("SDdata= %s\r\n",(u8*)Dataprint);





在用FATFS写文件的时候总会进入
void HardFault_Handler(void)
{
  /* Go to infinite loop when Hard Fault exception occurs */
  while (1)
  {
          //break;
  }




这是怎么回事,求大神赐教

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

7

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2016-4-28
在线时间
7 小时
 楼主| 发表于 2016-10-15 23:32:07 | 显示全部楼层
FRESULT f_write (
        FIL* fp,                        /* Pointer to the file object */
        const void *buff,        /* Pointer to the data to be written */
        UINT btw,                        /* Number of bytes to write */
        UINT* bw                        /* Pointer to number of bytes written */
)
{
        FRESULT res;
        DWORD clst, sect;
        UINT wcnt, cc;
        const BYTE *wbuff = (const BYTE*)buff;
        BYTE csect;


        *bw = 0;        /* Clear write byte counter */

        res = validate(fp);                                                /* Check validity */
每次都在最后这一行跳进硬件中断
回复 支持 反对

使用道具 举报

2

主题

7

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2016-4-28
在线时间
7 小时
 楼主| 发表于 2016-10-16 10:49:42 | 显示全部楼层
网上我找了,说是因为堆栈设置过小,又说没有申请内存,但是我修改了都还是不行,我把中断强行退出后也能往文件中写入数据,但是,后边用的f_close却不能把文件关闭了,之后的printf里的数据竟然也被写入文件中了,实在不知道什么情况,新人,求带,原子哥
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-24 02:22

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表