⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 _main.c

📁 SD卡-SDHC卡扇区读写测试
💻 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 + -