Arduino中读取SD卡文本文件数据

1、硬件

2、代码

#include <SD.h>
#include <SPI.h>          // needed for Arduino versions later than 0018

const long _1000msTime = 1000;    // 1000 milli seconds
unsigned long _1000msLastTime;

File myFile;
int date;
int Lastdate;
String strDate;//读出的SD,每一行数据

int pinSD = 4;
int pinW5500 = 53;

/****************按行读取SD卡内的动作**************/
String ReadSdLine() {
  String myStr;
  digitalWrite(pinW5500,HIGH);
  while ((date = myFile.read()) >= 0) 
  {
    if ((date == 10) && (13 == Lastdate)) 
    {
      break;
    } 
    else 
    {
      myStr += char(date);
    }
    Lastdate = date;
  }
  return myStr;
}

void setup() 
{
    // 打开串口
    Serial.begin(9600);
    while (!Serial) 
    {
        ; //等待串口连接。仅本机USB口使用。
    }
    Serial.println("Serial is opened.");

    //SD卡初始化
    if (!SD.begin(pinSD)) {
      Serial.println("initialization failed!");
      return;
    }
    myFile = SD.open("VRtest.txt");
}

void loop()
{
  TimeProc();

}

void TimeProc()
{

  String m_strd;
  //1000ms执行一次
  if ((millis() - _1000msLastTime) >= _1000msTime)
  {
    _1000msLastTime = millis( );    

    //
    m_strd = ReadSdLine();
    if(m_strd!="")
    {
      //如果当前行不为空,表示动作文件没有到底
      strDate=m_strd;      
      //SendToMBox(strDate);/将这行字符串给解析函数
      Serial.println(strDate);
    }
    else
    {
      /动作文件到底
      Serial.println("End Play");
    }
  }
}



3、测试

文本数据

将读取的数据发送到串口中

  • 10
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Big_潘大师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值