}
}
else break; /* 返回错误状态 */
if ( mBlockCount == 0 ) { }
return( mIntStatus ); /* 操作失败 */
mIntStatus = mWaitInterrupt( ); /* 等待中断并获取状态 */
if ( mIntStatus == USB_INT_SUCCESS ) return( 0 ); /* 操作成功 */
struct _HD_MBR_DPT { };
/* 为printf和getkey输入输出初始化串口 */ void {
//定时器1工作在模式2,8Bit自动重装载模式 TMOD = (TMOD & 0X0F) | 0X21; SCON = 0x50;
PCON |= 0x80;//波特率翻倍 TH1 = 0xff;
TL1 = 0xff; //12M晶振,12T模式,波特率为115200
mInitSTDIO( ) unsigned char PartState; unsigned char StartHead; unsigned int
StartSec;
unsigned char PartType; unsigned char EndHead; unsigned int
EndSec;
unsigned long StartSector; unsigned long TotalSector;
TR1 =1; } main( ) {
printf( \do /* 等待U盘连接 */ { }
while ( mIntStatus != USB_INT_CONNECT ); /* U盘没有连接或者已经拔
mIntStatus = mWaitInterrupt( ); /* 等待中断并获取状态 */ mInitSTDIO( );
LED_OUT_ACT( ); /* 开机后LED亮一下以示工作 */ mDelay100mS( ); /* 延时100毫秒 */ LED_OUT_INACT( );
printf( \
c = mCH375Init( ); /* 初始化CH375 */ if ( c ) {
printf( \}
unsigned char c, mIntStatus; TI = 1;
出 */
printf( \
mDelay100mS( ); /* 延时等待U盘进入正常工作状态 */ mDelay100mS( );
c = mInitDisk( ); /* 初始化U盘,实际是识别U盘的类型,不影响U盘中的
数据,在所有读写操作之前必须进行此步骤 */
/* 检查U盘是否准备好,大多数U盘不需要这一步,但是某些U盘必须要执行这一步才能工作 */ // do { // // //
mDelay100mS( ); printf( \
i = CH375DiskReady( ); /* 查询磁盘是否准备好,如果省掉这个子程序if ( c ) {
printf( \}
LED_OUT_ACT( );
可以节约将近1KB的程序代码 */ // } while ( i != ERR_SUCCESS );
/* CH375DiskReady 在CH375的U盘文件子程序库中,因为代码较多,所以此处省去 */
printf( \c = mReadSector(4110, 1 );
/*if ( c ) printf( \
if ( DATA_BUFFER[0x01FF] == 0xAA ) { /* 磁盘分区有效 */
/*printf( \c = mWriteSector( 1, 1 );
if ( c ) printf( \
memset( DATA_BUFFER, 0, 512 ); /* 清空数据缓冲区,代替原来的分
区信息 */
/*printf( \c = mWriteSector( 0, 1 );
if ( c ) printf( \
} else { }*/
printf( \while ( 1 )
printf( \c = mReadSector( 1, 1 );
if ( c ) printf( \printf( \c = mWriteSector( 0, 1 );
if ( c ) printf( \
{
mIntStatus = mWaitInterrupt( ); /* 等待中断并获取状态 */
if ( mIntStatus == USB_INT_DISCONNECT ) /* U盘没有连接或者
已经拔出 */ }
#include \ uart.c void UartInit (void) {
//参数配置
{ }
}
else if ( mIntStatus == USB_INT_CONNECT ) /* U盘已经连接 */ { }
printf( \LED_OUT_ACT( ); printf( \LED_OUT_INACT( );
#define MCLK 22118400L //定义CPU主频(Hz)
//设置波特率
#define BAUD_RATE 19200L }
RXD = 1; TXD = 1;
SCON = 0x50; //串口方式1(8位Uart),允许接收 PCON |= 0x80; //波特率加倍 TMOD &= 0x0F; TMOD |= 0x20;
TH1 = 256 - ( MCLK / 12 ) / ( 16 * BAUD_RATE ); TL1 = TH1; TR1 = 1; //ES = 1; //EA = 1;
//允许串行口中断 //允许中断 //设置波特率
void UartSendByte (unsigned char dat) { }
void UartSendStr(char *str) { }
while (*str != '\\0'){ }
SBUF = dat; while(!TI); TI = 0;
UartSendByte(*str); str++ ;