OpenEdv-开源电子网

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

录音项目 的 FATFS这样写,怎么可以 追加 写数据 按FAFS FA_CREATE_ALWAYS模式 没次都会覆盖啊?

[复制链接]

1

主题

2

帖子

0

精华

初级会员

Rank: 2

积分
65
金钱
65
注册时间
2018-6-7
在线时间
14 小时
发表于 2018-6-7 14:50:41 | 显示全部楼层 |阅读模式
void rec_i2s_dma_rx_callback(void)
{   
        u16 bw;
        u8 res;
        if(rec_sta==0X80)//??ò??£ê?
        {  
                if(DMA1_Stream3->CR&(1<<19))
                {
                        res=f_write(f_rec,i2srecbuf1,I2S_RX_DMA_BUF_SIZE,(UINT*)&bw);//D′è????t
                        if(res)
                        {
                                printf("write error:%d\r\n",res);
                        }
                         
                }else
                {
                        res=f_write(f_rec,i2srecbuf2,I2S_RX_DMA_BUF_SIZE,(UINT*)&bw);//D′è????t
                        if(res)
                        {
                                printf("write error:%d\r\n",res);
                        }
                }
                wavsize+=I2S_RX_DMA_BUF_SIZE;
        }
}  


                case KEY0_PRES:        //REC/PAUSE
                                        if(rec_sta&0X01)//?-à′ê??Yí£,?ìD???ò?
                                        {
                                                rec_sta&=0XFE;//è????Yí£
                                        }else if(rec_sta&0X80)//ò??-?ú??ò?á?,?Yí£
                                        {
                                                rec_sta|=0X01;        //?Yí£
                                        }else                                //?1???aê???ò?
                                        {
                                                recsec=0;         
                                                recoder_new_pathname(pname);                        //μ?μ?D?μ???×?
                                                Show_Str(30,190,lcddev.width,16,"????:",16,0);                  
                                                Show_Str(30+40,190,lcddev.width,16,pname+11,16,0);//??ê?μ±?°??ò????t??×?
                                                 recoder_wav_init(wavhead);                                //3?ê??ˉwavêy?Y       
                                                 res=f_open(f_rec,(const TCHAR*)pname, FA_CREATE_ALWAYS | FA_WRITE);
                                                if(res)                        //???t′′?¨ê§°ü
                                                {
                                                        rec_sta=0;        //′′?¨???tê§°ü,2??ü??ò?
                                                        rval=0XFE;        //ìáê?ê?·?′??úSD?¨
                                                }else
                                                {
                                                        res=f_write(f_rec,(const void*)wavhead,sizeof(__WaveHeader),&bw);//D′è?í·êy?Y
                                                        recoder_msg_show(0,0);
                                                        rec_sta|=0X80;        //?aê???ò?         
                                                }
                                        }
                                        if(rec_sta&0X01)LED1=0;        //ìáê??y?ú?Yí£
                                        else LED1=1;
                                        break;  

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

使用道具 举报

109

主题

5564

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
10571
金钱
10571
注册时间
2017-2-18
在线时间
1914 小时
发表于 2018-10-30 22:06:41 | 显示全部楼层
调用FATFS的f_lseek()移动文件对象的读写指针到文件结束处可以实现不覆盖之前的数据
具体见http://www.openedv.com/forum.php ... &extra=page%3D1
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-8 14:17

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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