📄 _main.c
字号:
#include "sdx.h"
#include "uart.h"
/*******************************************************
+-------------------------------------------+
| 振南电子 高级外设测试 之 SD卡的扇区读写 |
+-------------------------------------------+
此源码版权属 振南 全权享有,如欲引用,敬请署名并告知
严禁随意用于商业目的,违者必究,后果自负
振南电子
->产品网站 http://www.znmcu.cn/
->产品网店 http://shop.znmcu.cn/
->产品咨询 QQ :987582714
MSN:yzn07@126.com
WW :yzn07
程序说明:本程序用于测试SD卡(包括SD与SDHC)的扇区读写,
程序将向SD卡78扇区写入0~255 0~255 这512个字
节的数据,随后再从78扇区中将数据读回,看写入
的数据与读出的数据是否吻合,如果吻合将从串口
输出“SD卡扇区读写测试成功”同时P13连接的发光
二极管点亮,否则输出“.....失败”P13连接的发光
二极管不点亮
注:此驱动是原始SD卡驱动升级版,可以支持SD与SDHC。关于
此驱动程序暂无教程,敬请期待!
**********************************************************/
#define ADDR 78 //要操作的SD卡的扇区地址
sbit LED=P1^3; //如果测试成功,此IO上连接的二极管被点亮
unsigned char xdata pbuf[512]; //数据缓冲区
void main()
{
int i=0;
unsigned char flag=0;
UART_Init();
UART_Send_Str("串口设置完毕\r\n");
SD_Ready_Go();
UART_Send_Str("SD卡初始化完毕\r\n");
for(i=0;i<512;i++)
pbuf[i]=i; //向数据缓冲区中写入0~255 0~255,共512个字节
UART_Send_Str("向缓冲区中装入完毕\r\n");
SD_Write_Sector(ADDR,pbuf);//将数据缓冲区中的512个字节的数据写入SD卡的第ADDR扇区中
UART_Send_Str("写 SD卡扇区完毕\r\n");
for(i=0;i<512;i++) //清空数据缓冲区
pbuf[i]=0;
UART_Send_Str("清空缓冲区完毕\r\n");
SD_Read_Sector(ADDR,pbuf);//从SD卡的第ADDR扇区中读取512个字节的数据到数据缓冲区
UART_Send_Str("读 SD卡扇区完毕\r\n");
for(i=0;i<512;i++)
{
if(((unsigned char)i)!=pbuf[i]) //对读出的数据进行匹配,如果不吻合则flag=1,否则flag=0
{
flag=1;
break;
}
}
UART_Send_Str("匹配完毕\r\n");
if(flag)
{
LED=1; //发光二极管灭
UART_Send_Str("SD卡扇区读写测试失败!\r\n"); //数据不吻合
}
else
{
LED=0; //发光二极管点亮
UART_Send_Str("SD卡扇区读写测试成功!\r\n"); //数据吻合
}
while(1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -