//
//Read Sector(s)
//
DRESULT disk_read(
    uint8_t drv,		/* Physical drive nmuber (0..) */
    uint8_t* buff,		/* Data buffer to store read data */
    uint32_t sector,	/* Sector address (LBA) */
    uint8_t count		/* Number of sectors to read (1..255) */
)
{
	DRESULT res = RES_ERROR;
	switch(drv)
	{
#ifdef	FUNC_CARD_EN
		case DEV_ID_SD :
			if(!SdReadBlock(sector, buff, count))
			{
				res	= RES_OK;
			}
			break;
#endif	//FUNC_CARD_EN

#ifdef	FUNC_USB_EN
		case DEV_ID_USB :
			if(HostStorReadBlock(sector, buff, count))
			{
				res	= RES_OK;
			}

#endif	//FUNC_USB_EN

		default:
			break;
	}

	return res;
}
예제 #2
0
/*******************************************************************************
* 函 数 名 :ShowFullSDPic
* 函数功能 :显示SD卡的bin文件形式的图片
* 输    入 :add 图片起始地址,通过winhex查看
* 输    出 :无
*******************************************************************************/
void ShowFullSDPic(unsigned long add)
{
		unsigned long i=0,j=0,k=0;
		AddressSet(0,0,239,319);
		while(i < 76800)//240*320
		{
			LED = ~LED;
			SdReadBlock(DATA,add+k*512,512);
			for(j=0;j<256;j++)
			{
				LcdWriteData(DATA[j*2+1],DATA[j*2]);	//写一个像素点
				i++;
				if(i >= 76800) break;
			}
			k++;
		}
}
예제 #3
0
/*******************************************************************************
* 函 数 名: main
* 函数功能: 主函数
* 输    入: 无
* 输    出: 无
*******************************************************************************/
void main()
{
	//彩屏实验时最好关闭数码管的锁存器,避免数码管乱闪
	DULA = 1;
	P0 = 0xff;
	DULA = 0;
	WELA = 1;
	P0 = 0xff;
	WELA = 0;
	
	LcdInit();
	
	CLeanFullScreen(0xff,0xff);//清屏
	
	ShowString(0,0,"LCD init OK",RED,WHITE);
	
	if(!SdInit())
	{
		ShowString(0,20,"SD Init Fail",RED,WHITE);
		while(1);
	}
	
	if(!SdReadBlock(DATA,TXTADD,512))
	{
		ShowString(0,20,"SD Read Fail",RED,WHITE);
		while(1);
	}
	
	ShowString(0,20,DATA,RED,WHITE);//显示TXT文本内容
	Delayms(1000);
	while (1)
	{
		ShowFullSDPic(PIC1ADD);
		Delayms(2000);
		ShowFullSDPic(PIC2ADD);
		Delayms(2000);
		

	}
}