OpenEdv-开源电子网

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

[XILINX] PS端读取txt文件中浮点数,进行数据转换时程序没反应

[复制链接]

1

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
154
金钱
154
注册时间
2019-9-19
在线时间
45 小时
发表于 2020-9-12 10:34:47 | 显示全部楼层 |阅读模式
34金钱
本帖最后由 阳朔的海角 于 2020-9-12 10:43 编辑
  1. int status1,s;
  2.         u32 len=0;
  3.         u32 size = 0;


  4.         status1 = sd_mount();                                                           //挂载SD卡
  5.         if(status1 != XST_SUCCESS){
  6.                 xil_printf("Failed to open SD card!\n");
  7.                 return 0;
  8.         }
  9.         else
  10.                 xil_printf("Success to open SD card!\n");


  11.         FIL fil;         //文件对象
  12.         UINT br;         //f_read函数返回已读出的字节数

  13.         //打开一个只读的文件
  14.         f_open(&fil,FILE_NAME,FA_READ);
  15.         //移动打开的文件对象的文件读/写指针     0:指向文件开头
  16.         f_lseek(&fil,0);

  17.         size = f_size(&fil);
  18.         printf("%d\n",size);
  19.         char buff[size];
  20.         //从SD卡中读出数据
  21.         f_read(&fil,buff,size,&br);
  22.         //关闭文件
  23.         f_close(&fil);

  24.         printf("%s\n",buff);
  25.         printf("test");
复制代码
  1. //从字符串中提取浮点数
  2.         char buffer[12];
  3.         float data[1024];
  4.         int k = 0;
  5.         int n = 0;


  6.         for(int i = 0; i < size; i++){
  7.                 if(buff[i] == ' '){
  8.                         data[n++] = atof(buffer);
  9.                         k = 0;
  10.                         continue;
  11.                 }
  12.                 else{
  13.                         buffer[k++] = buff[i];
  14.                 }
  15.         }

  16.         for(int i = 0; i < 1024; i++){
  17.                 printf("%f\n",data[i]);
  18.         }
复制代码

读取SD卡数据

读取SD卡数据

加入提取浮点数的程序

加入提取浮点数的程序
加上从字符串中提取浮点数的程序后,前面的程序都无法打印读出的字符串了。

最佳答案

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

是堆栈的问题,将steap size设大点就可以了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
154
金钱
154
注册时间
2019-9-19
在线时间
45 小时
 楼主| 发表于 2020-9-12 10:34:48 | 显示全部楼层
是堆栈的问题,将steap size设大点就可以了
回复

使用道具 举报

22

主题

2247

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4458
金钱
4458
注册时间
2013-4-22
在线时间
333 小时
发表于 2020-9-12 12:29:00 | 显示全部楼层
格式不对吧
回复

使用道具 举报

1

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
154
金钱
154
注册时间
2019-9-19
在线时间
45 小时
 楼主| 发表于 2020-9-12 12:37:20 | 显示全部楼层

这个浮点转换程序是可以将字符型转成浮点的
回复

使用道具 举报

1

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
154
金钱
154
注册时间
2019-9-19
在线时间
45 小时
 楼主| 发表于 2020-9-12 13:01:17 | 显示全部楼层
本帖最后由 阳朔的海角 于 2020-9-12 13:31 编辑
  1. <div class="blockcode"><blockquote>Success to open SD card!
  2. 51
  3. br = 51
  4. 0.000000000 -0.000000991 -0.000001982 -0.000001982
  5. test

  6. <0>        0.000000
  7. <1>        -0.000001
  8. <2>        -0.000002
  9. <3>        -0.000002
复制代码



在txt文件中写了两个浮点数,重串口打印出结果,值慧保留到小数点后6位,但如果是1024个数据,程序就不运行
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-10-3 13:22

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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