OpenEdv-开源电子网

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

为什么读取的缓存区只能设置到328, f_read

[复制链接]

10

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
87
金钱
87
注册时间
2014-8-31
在线时间
0 小时
发表于 2014-12-17 08:03:03 | 显示全部楼层 |阅读模式
5金钱
1.我的读取缓存区只能设置到328,多了就不跑了,请问是为什么?
2.我写进去24个字节的数,为啥读出来的多余24的时候是乱码,

if(myfs_init())
{   
 FRESULT rc,rw;
BYTE buffer[328];//="?ó?????ó?????ó?????ó????";
 BYTE buffer1[328] ;
 UINT br,bw;
//      FATFS  fs;
      FIL infile;
//  FILINFO  finfo;
//  DIR dirs;
int a;
SD_capp = SD_GetSectorCount();
SD_capp = SD_capp*512;
SD_capp = (SD_capp/1024)/1024;
com1_send_str("????4G??????????TF?¨??????\r\n");
com1_send_str("TF?¨??????");
USART_SendData(USART1,(SD_capp%10000)/1000+'0');
while (USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);
USART_SendData(USART1,(SD_capp%1000)/100+'0');
while (USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);
USART_SendData(USART1,(SD_capp%100)/10+'0');
while (USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);
USART_SendData(USART1,SD_capp%10+'0');
while (USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);
com1_send_str("MB\r\n");

/* rc=f_open(&infile,"text1/12.txt",FA_WRITE | FA_CREATE_ALWAYS);
 if(rc==FR_OK)
{
do
       {
        rc = f_write(&infile, buffer,100,&bw);
            if(rc)
              {
               com1_send_str("write error : %d\r\n");
                 break;
              }

}while (bw < 100);
  f_close(&infile);
}*/
rc=f_open(&infile,"text1/12.txt",FA_READ);
 if(!rc)
{
 com1_send_str("open SD.txt\r\n");

    br=1;
for (;;)       
{
         for(a=0;a<329;a++) buffer1[a] =0;
rc=f_read(&infile,buffer1,300,&br);    
          com1_send(&buffer1,300) ;
if (rc || br <300) break;  


}
  f_close(&infile);
}

最佳答案

查看完整内容[请看2#楼]

因为堆栈有限,你放局部变量,堆栈容易溢出,放全局变量就好了
和大家虚心请教
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-12-17 08:03:04 | 显示全部楼层
因为堆栈有限,你放局部变量,堆栈容易溢出,放全局变量就好了
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

10

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
87
金钱
87
注册时间
2014-8-31
在线时间
0 小时
 楼主| 发表于 2014-12-18 08:33:54 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------是的,原子哥,哈哈哈,我想问一下,要是该.s文件可以不?哪个好一些
和大家虚心请教
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-12-18 23:15:34 | 显示全部楼层
回复【3楼】lpfzhx:
---------------------------------
当然是做全局变量好。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-27 17:36

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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