#include “sys.h”
#include “delay.h”
#include “usart.h”
#include “led.h”
#include “lcd.h”
#include “key.h”
#include “usmart.h”
#include “malloc.h”
#include “sdio_sdcard.h”
#include “w25qxx.h”
#include “ff.h”
#include “exfuns.h”
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
/************************************************
************************************************/

FIL fp0;
FILE* fp1;
FRESULT res0;
unsigned int brf;
unsigned int *admin_p;
int iii;
int j;
UINT br0,bw0;
u8 ReadBuf[500];
char buf99[100];
char str99[100];
double doublexy[400];
int mm;
double StrToDouble(char *s);

double xx[100];
double yy[100];
int ttt;
int ggg;

//8
//
***
//*****************************************************************
int main(void)
{
u32 total,free;
u8 t=0;
u8 res=0;
u8 tbuf[500];
delay_init(); //延时函数初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
uart_init(115200); //串口初始化为115200
usmart_dev.init(72); //初始化USMART
LED_Init(); //初始化与LED连接的硬件接口
KEY_Init(); //初始化按键
LCD_Init(); //初始化LCD
my_mem_init(SRAMIN); //初始化内部内存池
POINT_COLOR=RED; //设置字体为红色

while(SD_Init())//检测不到SD卡
{LCD_ShowString(30,150,200,16,16,"SD Card Error!");delay_ms(500);                 LCD_ShowString(30,150,200,16,16,"Please Check! ");delay_ms(500);LED0=!LED0;//DS0闪烁
}
exfuns_init();                          //为fatfs相关变量申请内存

f_mount(fs[0],“0:”,1); //挂载SD卡

 memset(str99,0,sizeof(str99));

memset(buf99,0,sizeof(buf99));

LCD_Fill(30,150,240,150+16,WHITE);      //清除显示
while(exf_getfree("0",&total,&free))  //得到SD卡的总容量和剩余容量
{LCD_ShowString(30,150,200,16,16,"SD Card Fatfs Error!");delay_ms(200);LCD_Fill(30,150,240,150+16,WHITE);    //清除显示            delay_ms(200);LED0=!LED0;//DS0闪烁
}

res0=f_open(&fp0,“1.txt”, FA_READ );
if(res0!=FR_OK)
{
LCD_ShowString(30,150,200,16,16,“f_open() fail!”);
}
else
{
LCD_ShowString(30,150,200,16,16,“f_open() okok!”);
}
f_read(&fp0,ReadBuf,500,&br0);
sprintf((char*)tbuf,“br0:%d”,br0);
LCD_ShowString(30,210,210,16,16,tbuf);
delay_ms(1000);
LCD_Clear(WHITE);

     LCD_Clear(WHITE);j=0;mm=0;for(iii=0;iii<br0;iii++){   delay_ms(5);if(ReadBuf[iii]!=','){ LCD_ShowString(30,170,200,16,16,"1234");  str99[j]=ReadBuf[iii];sprintf((char*)tbuf,"%s",str99);LCD_ShowString(30,210,210,16,16,tbuf); delay_ms(1000);LCD_Clear(WHITE);j++;}else if(ReadBuf[iii]==',')//读取到一个字符数组;放到里面。把字符数组,变为浮点数{LCD_ShowString(30,170,200,16,16,"ef0f");  doublexy[mm]=StrToDouble(str99);mm++;memset(str99,0,sizeof(str99));j=0;}}sprintf((char*)tbuf,"mm:%d",mm); LCD_ShowString(30,210,210,16,16,tbuf);  for(iii=0;iii<mm;iii++){sprintf((char*)tbuf,"Time:%.2f",doublexy[iii]); LCD_ShowString(30,210,210,16,16,tbuf);delay_ms(500);LCD_Clear(WHITE);}ttt=0;ggg=0;for(iii=0;iii<br0;iii++){if(iii%2==0)//偶数,放到y坐标{xx[ttt]=doublexy[iii];ttt++;  }else { yy[ggg]=doublexy[iii];ggg++;}    }for(iii=0;iii<br0/12;iii++){sprintf((char*)tbuf,"xx:%.2f",xx[iii]); LCD_ShowString(30,210,210,16,16,tbuf);delay_ms(1000);LCD_Clear(WHITE);}for(iii=0;iii<br0/12;iii++){sprintf((char*)tbuf,"yy:%.2f",yy[iii]); LCD_ShowString(30,210,210,16,16,tbuf);delay_ms(1000);LCD_Clear(WHITE);}res0 = f_close(&fp0);while(1);

}

//字符串转double
double StrToDouble(char *s)
{
int i = 0;
int k = 0;
double j;
int flag =1;
double result = 0.0;
if (s == NULL)
{
// printf(“输入字符串为空”);
// exit(-1);
return 0;

}while (s[i] == ' ')
{i++;
}
if (s[i] == '+')
{i++;
}
if (s[i] == '-')
{i++;flag = -1;
}
while (s[i] != '\0' && s[i] != '.')
{if (s[i] < '0' || s[i] > '9'){// printf("字串含有非数字字符,无法转换!\n");return 0;//    exit(-1);}j = (s[i] - '0')*1.0;result = result * 10 + j;if((result>0x7fffffff)){return 0;}i++;
}
if (s[i] == '.')
{i++;while (s[i] != '\0'){if (s[i] < '0' || s[i] > '9'){//printf("字串含有非数字字符,无法转换!\n");return 0;}k++;j = s[i] - '0';result = result + (1.0 * j) / pow(10.0, k);    //编译时候此处有警告i++;}
}
result = flag * result;
return result;

}

接上一篇的正点原子战舰读取sd卡文本文件的主程序。相关推荐

  1. 《Arduino》开发 TFT_eSPI-master 库 之用 ESP32 读取SD卡上的图片并显示在1.14IPS屏幕上

    前几天解决了 TFT_eSPI-master 库 图片取模问题,但尽管是ESP32的 flash 也无法存储太多图片的数组,因此我找到了ESP32从SD卡读取图片并显示在LCD屏幕上的方法,SD卡可以 ...

  2. 读取SD卡里面的BMP文件 显示到TFT上

    读取SD卡里面的BMP文件 显示到TFT上 http://blog.csdn.net/yunxianpiaoyu/article/details/8841755 我刚好最近做了一个BMP565格式的图 ...

  3. stm32 arduino 读取sd卡并在lcd(jlx12864)上播放badapple

    目录 前言 引脚连接 代码示例 问题排查 1. sd卡无法读取 2. lcd无显示 前言 要问什么是测试单片机控制单色屏幕的最佳办法,我想badapple应该当之无愧,经典程度如helloworld. ...

  4. 正点原子mysql_正点原子战舰开发板硬件原理图与PCB

    [实例简介] 正点原子的STM32F103新战舰开发板的硬件原理图与PCB,且PCB含三维元器件封装. [实例截图] [核心代码] 1d489e5a-fad4-4456-aeb8-6225947162 ...

  5. 捣鼓篇之— 正点原子DS100mini示波器拆解

    2020年的双十一的时候,下手买了正点原子发布的DS100mini示波器,主要是小巧,便宜实用,如今距离我收到这个示波器已经快一个月啦,今天终于有了点时间,来一个开箱大拆机! 第一步:假开箱(之前已经 ...

  6. stm32 读取sd卡图片显示_「正点原子STM32Mini板资料连载」第三十五章 汉字显示实验...

    1)实验平台:正点原子STM32mini开发板 2)摘自<正点原子STM32 不完全手册(HAL 库版)>关注官方微信号公众号,获取更多资料:正点原子 第三十五章 汉字显示实验 汉字显示在 ...

  7. 单片机读取SD卡中BMP图片文件并送往TFT彩屏上显示(测试成功)(二)

    二.软件部分 软件中INI_FLAG为设置的一个标志位,通过置1该位可以控制发送或接受数据速度.因为在初始化阶段SD卡操作需要适当放缓,而初始化成功后可以加快数据传动速率. 1>往SD卡写一个字 ...

  8. STM32工作笔记001---认识开发板资源-以正点原子战舰版开发板为例

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 这里只把不太明白的写上. 1.DS18B20是湿度传感器 DS18B20是常用的数字温度传感器,其 ...

  9. RK3399平台开发系列讲解(疑难问题篇)11.2、如何提高读取SD卡的速度

    文章目录 高速读取的条件 解决问题 平台 内核版本 安卓版本 RK3399 Linux4.4 Android7.1 高速读取的条件 经了解,USB的BULK_ONLY和UFI协议,我们知道高速主要是大 ...

最新文章

  1. 【AIX 命令学习】加载与卸载文件系统!
  2. 手动删除SVCH0ST.EXE的方法
  3. JDK1.8源码阅读系列之二:LinkedList
  4. 【Py面试题】找到数组或整数列表中连续子序列的最大和
  5. Android --- java.lang.RuntimeException: Can‘t create handler inside thread that has not called Loop
  6. Centos6.5 安装apache2.4.33部署教程
  7. JDBC连接MySQL数据库及示例
  8. 七夕秀恩爱新姿势!这波操作我给十分!
  9. 鼓励参与计算机考试宣传标语,诚信考试的宣传标语(精选60条)
  10. 我为什么反对 Google 拍卖 Android 搜索引擎选项?
  11. 程序设计实习MOOC / 程序设计与算法(二)第二周测验(2018春季)
  12. TCP数据的传输过程
  13. 网络安全与信息安全【知识点】
  14. 读书笔记(创业维艰)
  15. 【设计模式】Unity3D 观察者模式
  16. PAT 1002 写出这个数 (20分)(Java)
  17. 20皇后的不是很正确的解法
  18. 如何进入/home/user/.wine
  19. 进击的Android注入术
  20. JAVA入门-菜鸟篇-

热门文章

  1. 数字集成电路设计-1-用一个mux和一个inv实现异或
  2. java.sql.SQLException: Access denied for user 'pc'@'localhost' (using passw
  3. Visual Studio 2013安装使用方法
  4. LogiScope100MHZ 16通道逻辑分析仪
  5. 正则 [.\n]* (.|\n)* 区别
  6. CRM系统主要包含什么内容
  7. 手机摄像头模组涉及的领域以及镜头的选择
  8. 物理内存是什么是计算机的显卡内存吗,物理内存使用率过高_任务管理器里的物理内存是什么,CPU使用率很低,但......
  9. 深度学习之 DCGAN 及TensorFlow 实现
  10. ubuntu搜狗输入法中文无法切换英文