📄 text1.c
字号:
#include <reg51.h>
#include <stdio.h>
#include "config.h"
#include "udisk.h"
sbit P10 = P1^0;
sbit P11 = P1^1;
void UART0Init(uint32 bps);
uint8 code WritFileData[] =
"\r\n******************Copyright (c) 周立功单片机发展有限公司***********************\r\n\
\r\n\
U盘作为数据的载体目前已广泛应用于嵌入式行业,而某些电子产品在国家标准中已成了\r\n\
强制性的要求。在嵌入式的电子产品中实现对U盘文件的读写,成了许多厂家的技术攻关的难\r\n\
题。优盘伴侣EasyUDisk读写U盘模块就可以轻易解决以上问题,它是低端单片机操作U盘的最\r\n\
佳伴侣。\r\n\
EasyUDisk模块采用PHILIP公司工业级USB主控芯片ISP1160和ARM7微处理器LPC2132,整个\r\n\
模块以工业级标准设计。模块提供了通用RS232串口与用户系统连接,使普通的单片机也可以\r\n\
轻易实现对U盘的操作。\r\n\
EasyUDisk模块适用于仪器仪表、门禁系统、汽车黑匣子和税控机等对存贮速度要求不高\r\n\
的设备中使用。\r\n\
\r\n\
\r\n*********************************ARM开发部门************************************\r\n";
char code dir[] = "zlgmcu";
int main (void)
{// add user source code
volatile uint16 i;
FHANDLE *Handle;
SYSINF sysinf;
UART0Init(9600L);
DriverIni(); // 驱动参数初始化
while(TRUE!=GetDiskInfo(&sysinf)) // 轮询设备,直到设备连接
{
UART0Init(4800L); P10 ^= 1;
if(TRUE==GetDiskInfo(&sysinf))
break;
UART0Init(9600L); P10 ^= 1;
if(TRUE==GetDiskInfo(&sysinf))
break;
UART0Init(14400L); P10 ^= 1;
if(TRUE==GetDiskInfo(&sysinf))
break;
UART0Init(19200L); P10 ^= 1;
if(TRUE==GetDiskInfo(&sysinf))
break;
UART0Init(38400L); P10 ^= 1;
if(TRUE==GetDiskInfo(&sysinf))
break;
UART0Init(57600L); P10 ^= 1;
if(TRUE==GetDiskInfo(&sysinf))
break;
}
P10 = 0; // 指示模块已连接
//*************************************************************
// 设置波特率和系统时间
// 6设波特率为57600,4设波特率为38400,3设波特率为19200
// 2设波特率14400,1设波特率9600,0设波特率4800
//*************************************************************
sysinf.Baud = 6;
sysinf.Year = 5;
sysinf.Month =8;
sysinf.Dom = 29;
sysinf.Hour = 11;
sysinf.Min = 6;
sysinf.Sec = 0;
if(SetDiskInfo(&sysinf))
{
UART0Init(57600); //
}
/*************************************************************/
while(1)
{
GetDiskInfo(&sysinf);
if(sysinf.DiskIn>0) // U盘已插入
{
P11 = 0; // U盘已插入
if(sysinf.FH.fh!=0xff) // EasyUDisk已有文件打开,
FileClose(); // 先将已打开的文件关闭。
Handle = FileOpen("A:\\演示程序.txt"); // 打开或创建一个文件
if(Handle)
{
FileSeek(Handle,0, SEEK_END); // 将指针移到文件末尾
FileWrite((uint8*)WritFileData,
sizeof(WritFileData),Handle); // 写数据入文件
FileClose(); // 关闭文件
}
MakeDir((char*)dir); // 创建目录
while(1)
{
for(i=0;i<0x4 ;i++);
GetDiskInfo( &sysinf );
if( 0 == sysinf.DiskIn ) // U盘已拔出
break;
}
P11=1; // 指示U盘已拔出
}
for(i=0;i<0x8fff;i++);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -