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

📄 text1.c

📁 51读写u盘 uart.c main.c rwudiskdemo.c
💻 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 + -