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

📄 usbmain.c

📁 台湾凌阳单片机USB驱动源程序
💻 C
字号:
//========================================================================================//
//
//        The information contained herein is the exclusive property of
//      Sunplus Technology Co. And shall not be distributed, reproduced,
//      or disclosed in whole in part without prior written permission.
//
//            (C) COPYRIGHT 2001   SUNPLUS TECHNOLOGY CO.
//                           ALL RIGHTS RESERVED
//
//    The entire notice above must be reproduced on all authorized copies.
//
//======================================================================================//
//--------------------------------------------------------------------------------------//
//  工程名称:   usb061.scs
//  作    者:    abin    
//  联系方式:   xiaobin@sunnorth.com.cn
//  适应芯片:    SPCE061A
//  功能描述:    实现两点功能:
//			     1.通过USB通讯,PC端应用程序能够控制LED灯的亮灭;
//			     2.PC端应用程序发送小于65字节的字符串给SPCE061A,SPCE061A接收PC发送的
//                 小于65字节字符串后将接收到的字符串发送给PC,PC接收字符并显示在界面。
//				 硬件连接:详见"usb模组用户手册.doc"
//  涉及的库:	
//				(a) C-Lib:  CMacro.lib
//            	(b) USB-Lib: Easyusb11.lib
//  组成文件:
//    			 usbmain.c/ExternInt.C/
//				 isr.asm/system.asm/hardware.asm 
//     			 isr.h/hardware.h/hardware.inc
//  完成日期:    2003-04-03
//--------------------------------------------------------------------------------------//
//======================================================================================//
//  文件名称:    usbmain.c
//  描    述:   该文件是主程序文件,程序是一个大的循环体,不断扫描标志变量,根据标
//               志变量的值执行相应的动作.
//  完成日期:   2003/04/03
//  涉及的库:   Easyusb11.lib
//=====================================================================================//
#include "usbmain.h"
#include "D12CI.h"

extern void F_Interrupt_On(void); 
extern void F_System_Initial(void);
extern void F_TurnOnSecondLed(void);
extern void F_TurnOffSecondLed(void);
extern void F_TurnOnFirstLed(void);
extern void F_TurnOffFirstLed(void);
extern void F_Clear_WatchDog(void);

extern void F_Reconnect_USB(void);
extern void F_Control_Handler(void);

extern EPPFLAGS bEPPflags;
extern unsigned int  MainEpBuf[];
extern unsigned int  OneRecByteNum;
CONTROL_TRANSFERS ControlData;
main()
{
	F_System_Initial();
	F_Reconnect_USB();  //PDIUSBD12芯片的软连接
	F_Interrupt_On();   
	while( TRUE )
	{
	    if (bEPPflags.bits.bus_reset)    //总线复位处理
		{
		 	bEPPflags.bits.bus_reset = 0;//清标志
		}   
		if (bEPPflags.bits.suspend)//总线挂起处理
	    {
		    bEPPflags.bits.suspend= 0;//清标志
		} 
		if (bEPPflags.bits.setup_packet)//协议处理
		{
			bEPPflags.bits.setup_packet = 0;//清标志
			F_Control_Handler();
		}
	    if(bEPPflags.bits.ep2_rxdone==1)
		{
			bEPPflags.bits.ep2_rxdone = 0;//清标志
			if(MainEpBuf[0]==ID0)//connect test handle
			{   
		 	 	F_D12_WriteEndpoint(5,1,MainEpBuf);//将ID0送到PC
			}
			else if(MainEpBuf[0]==ID1)//LED control
			{  
				
				if(MainEpBuf[1]==1)
					F_TurnOnFirstLed();//点亮LED灯
				if(MainEpBuf[1]==0)
					F_TurnOffFirstLed();//熄灭LED灯
				if(MainEpBuf[1]==3)
					F_TurnOnSecondLed();//点亮LED灯
				if(MainEpBuf[1]==2)
					F_TurnOffSecondLed();//熄灭LED灯
		 	 }
			else
			{
				F_D12_WriteEndpoint(5,OneRecByteNum,MainEpBuf);//发送接收到的字节,OneRecByteNum<=64
			}
		}
		F_Clear_WatchDog();
	} // End while

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -