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

📄 main.c

📁 SmartARM2400系列开发板全套资料
💻 C
字号:
/****************************************Copyright (c)****************************************************
**                            Guangzhou ZHIYUAN electronics Co.,LTD.
**                                      
**                                 http://www.embedtools.com
**
**--------------File Info---------------------------------------------------------------------------------
** File name:               main.c
** Latest modified Date:    2008-05-10
** Latest Version:          1.0
** Descriptions:            SmartARM2300 系列开发板 USB Device DMA 示例程序
**
**--------------------------------------------------------------------------------------------------------
** Created by:              Chenmingji
** Created date:            2004-09-16
** Version:                 1.0
** Descriptions:            The original version
**
**--------------------------------------------------------------------------------------------------------
** Modified by:   			LingGuilin          
** Modified date:    		2008-05-10       
** Version:          		1.1       
** Descriptions:      		SmartARM2300 系列开发板 USB Device DMA 示例程序
**							1.通过物理端点4接收PC发送的3072字节数据 
**							2.通过物理端点5将接收到的3072字节数据发送回PC
**
*********************************************************************************************************/
#include "main.h"

#define USB_INT         22

#define NUMS	3072													/*  定义DMA传输的长度 			*/

/*********************************************************************************************************
** Function name:       main
** Descriptions:        主函数
** Input parameters:    None
** output parameters:   None
** Created Date:        
*********************************************************************************************************/
int main (void)
{
	uint8  *pSrc = NULL;
	uint8  *pDst = NULL;
	uint8  ucErr    = 0;
	uint32 ulSetLen = 0;	

	TargetInit();
	
	ucErr = usbDevInit();												/*  初始化USB设备控制器 		*/
	if (ucErr != 0) {
		while(1);														/*  初始化失败,程序停止执行 	*/
	}
													
	vicIrqFuncSet(USB_INT,3,(uint32)usbDevException);					/*  设置USB Device中断服务程序	*/

	IRQ_ENABLE();														/*  允许CPU的IRQ中断			*/

	ulSetLen = usbDevDMASetTransLength(4, NUMS);						/*  配置物理端点4 DMA传输长度 	*/

	while(1) {
	
		usbDevServe();													/*  处理USB事件 				*/
		
		if (bEPPflags.bits.configuration == 1) {
		
			if (bEPPflags.bits.ep2_rxdma == 1) {
																		/*  物理端点4 DMA接收数据完成 	*/
				IRQ_DISABLE();
				bEPPflags.bits.ep2_rxdma = 0;
				IRQ_ENABLE();

				pSrc = usbDevDMAGetBuffer(4);
				pDst = usbDevDMAGetBuffer(5);
				
				memcpy(pDst, pSrc, NUMS);								/*  拷贝数据到目标缓冲区		*/

				ulSetLen = usbDevDMASetTransLength(5,NUMS);				/*  设置物理端点5缓冲区大小		*/

				usbDevDMAStartIN(5);									/*  启动物理端点5 DMA传输		*/

				ulSetLen = usbDevDMASetTransLength(4, NUMS);			/*  设置物理端点4缓冲区大小		*/		
			}
			
		}
	}
	
    return 0;
}

/*********************************************************************************************************
  END FILE
*********************************************************************************************************/

⌨️ 快捷键说明

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