点击返回Arduino-SD库页面
begin
描述
SD类进行初始化。 调用此函数将开始使用SPI总线(在大多数Arduino板上的数字引脚11、12和13; Mega上的50、51和52)和芯片选择引脚,默认为硬件SS引脚(大多数Arduino板上的引脚10 ,而在Mega上为53)。
如果您选择自定义SS引脚,则必须将该引脚使用pinMode(cs_pin, OUTPUT);
函数设置为输出模式,否则SD库功能将不起作用。
语法
SD.begin()
SD.begin(cspin)
参数
cspin(可选): 连接到SD卡芯片选择线的引脚(CS
);默认为SPI总线的硬件SS线)
返回值
返回值类型:bool
初始化成功时返回true
失败时为false
示例程序 (Arduino向SD卡读写数据)
电路连接
为了演示,我们这里不使用开发板默认的SS引脚,而是自定义一个CS引脚进行控制SD卡读取模块,因此在电路连接时,需要将上图CS引脚连接到我们自定义的引脚上.
将CS链接到4号引脚上
在setup()中,我们使用SD.begin()
将引脚4
定义为CS
引脚。该针脚可自己进行定义,定义之后一定要设置为输出模式,否则无法正常工作
在中setup(),创建一个SD.open()
名为“ test.txt”
的新文件。FILE_WRITE
从结尾开始启用对文件的读写访问。如果卡上已经有文件“ test.txt”
,则将打开该文件。
将打开的文件的实例命名为“ myFile”
。
打开后,用myFile.println()
函数将字符串写入SD卡。内容写入后,关闭文件。
为了验证是否写入成功,我们再次使用打开文件,使用SD.open()
。打开以后,使用SD.read()
读取信息然后通过串行监视器打印里面的数据。读取文件的所有内容后,请使用SD.close()
关闭文件。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
/********************************************************************** 程序名称/Program name : 使用SD库读写文件 团队/Team : 太极创客团队 / Taichi-Maker (www.taichi-maker.com) 作者/Author : Dapenson 日期/Date(YYYYMMDD) : 2020/06/18 程序目的/Purpose : 演示如何使用UNO和SD卡读写模块进行文件的读写 ----------------------------------------------------------------------- 修订历史/Revision History 日期/Date 作者/Author 参考号/Ref 修订说明/Revision Description ----------------------------------------------------------------------- 其它说明: ***********************************************************************/ #include <SPI.h> #include <SD.h> // 创建File实例化对象 File myFile; // 定义cs引脚为10 const int cs = 4; void setup() { // 初始化硬件串口并设置波特率为9600 Serial.begin(9600); while (!Serial) { ; //等待串口打开 } Serial.print("Initializing SD card..."); //注意,必须将CS引脚设置为输出模式,否则SD库功能将不起作用。 //此处将10引脚作为CS并设置为输出OUTPUT模式 pinMode(cs, OUTPUT); if (!SD.begin(cs)) { Serial.println("initialization failed!"); return; } Serial.println("initialization done."); //打开文件。 请注意,一次只能打开一个文件 //您必须先关闭该文件再打开另一个文件。 myFile = SD.open("test.txt", FILE_WRITE); // 如果文件打开,则进行写入 if (myFile) { Serial.print("Writing to test.txt..."); myFile.println("testing 1, 2, 3."); // 关闭文件打开状态 myFile.close(); Serial.println("done."); } else { //如果文件没有打开,则向串口输出文件打开错误 Serial.println("error opening test.txt"); } // 重新读取该文件 //(www.taichi-maker.com) myFile = SD.open("test.txt"); if (myFile) { Serial.println("test.txt:"); //从文件里读取数据并打印到串口,直到读取完成 while (myFile.available()) { Serial.write(myFile.read()); } // 关闭文件打开状态 myFile.close(); } else { //如果文件没有打开,则向串口输出文件打开错误 Serial.println("error opening test.txt"); } } void loop() { } |
效果演示