在线时间4854 小时
UID3309825
ST金币0
蝴蝶豆17
注册时间2016-9-4
论坛元老
- 最后登录
- 2020-12-9
|
a4a.1 32b0c
ARM®mbed OS 提高 之 SD卡 2
mbed SD卡教程
mbed这个特殊的开发平台!潜力巨大什么可以用这个东西来实现。
现在唯一的缺陷就是例程文档。虽然mbed网站很好,
其中微控制器执行最常见的任务是从仪表记录数据,目前最好的办法是使用SD卡。
数据将被存储SD卡内的ASCII文本文件。
若用逗号分隔值....它可以很容易地导入到所选择的电子表格或制图软件。
本实验需要以下条件:
mbed和USB线
SD卡 - 分区和格式化
SD卡接口板 - Adafruit的或Sparkfun的都可以!
一些面包线
耐心!
Adafruit的的MicroSD接口板
Sparkfun SD接口板
这里是是如何工作的说明演示代码....
http://mbed.org/search/?type=&q=SD+card+tutorial
需要找的其实在这里:
http://mbed.org/cookbook/SD-Card-File-System
mbed cookbook是有用的,但有点难
它包含大量的编程信息 - 库和使用,但没有图片和图表讲述如何连接!
SPI接口的SD卡通常通过SPI协议的主机微控制器通信。
nucleo有多个SPI端口 - PIN D11,D12和D13 - 即MOSI,MISO和SCK。
这三个引脚,但它们是不可互换。本测试用11,12和13!
下面是连接的图片
连接+ 5V至Vdd,因为我的SD板有逻辑电平转换为5V转换到3.3V。
如果使用只是一个无降压芯片的SD卡板则需连3.3v
下面是库文件
http://mbed.org/cookbook/SD-Card-File-System
确保接线正确。使用D11,12和13 MOSI,MISO和SCK。
D10连接cs
程序如下:
//平台nucleo+mbed+SD卡模块
//读写实验
#include "mbed.h"
#include "SDFileSystem.h"
//mbed SD Card tutorial
SDFileSystem sd(D11, D12, D13, D10, "sd"); // the pinout on the mbed Cool Components workshop board
//原平台LPC1768 (p11, p12, p13, p8, "sd");
// mosi,miso,sck,cs,
// nucleo D11,D12,D13,D10
int main() {
printf("SD card test!\r\n");
mkdir("/sd/mydir", 0777);
FILE *fp = fopen("/sd/mydir/sdtest.txt", "w");
if(fp == NULL) {
error("Could not open file for write\r\n");
}
fprintf(fp, "Hello fun SD Card World!\r\n");
fclose(fp);
printf("File successfully written and closed!\r\n");
}
尝试解释代码如下:
第一行告诉编译器包含那些头文件。
第三行 SDFileSystem SD(D11,D12,D13,D10,“SD”); 告诉编译器SD卡被连接到D11,12,13和D10。
-- 针脚D10被称为CS或SS,印刷电路板上的丝印有显示
代码其余的部分打印一条消息到mbed com口,设置SD卡上的目录,然后创建一个名为sdtest.txt的文本文件。
如果该文件不能创建或 显示在串行终端上的消息错误;
该程序然后完成。如果文件被创建并打开成功的消息将在文本文件中写入,然后测试文件被关闭。
新消息被发送到串行终端来记录项目的成功。
本人使用虚拟串口软件AccessPort.exe
原作者使用PuTTy,符合Telnet或SSH要求的一个免费的终端程序。
可以从这里下载:
http://www.chiark.greenend.org.uk/~sgtatham/putty/
连接nucleo到PC,编译.bin文件复制到你的mbed并按下复位按钮。
如果一切顺利的绿色电源/编程LED指示灯将闪烁,然后该程序将退出。没有其它LED灯应点亮。
COMXX - 9600,N,8,1,XX你可以查看你的虚拟mbed COM端口号:
如果拔下的SD卡,并查看SD卡目录会出现MDIR一个新文件夹,
该文件夹中会出现sdtest.txt。打开它,并验证它是否正确。
若实验失败下面的消息将在PuTTy显示:
LED闪烁SD卡失败...
如果看到这个消息,检查检查线路连接
这样我只需要一个USB电缆连接到mbed(而不是编程电缆),可以浏览SD卡中的数据!
|
|