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

📄 test.cpp

📁 ARM下加一个硬件驱动比较复杂
💻 CPP
字号:
// test.cpp : Defines the entry point for the console application.
//
#include "Winbase.h"
#include "stdafx.h"
#include "CSDdriver.h"

static DWORD lock=0;
static DWORD  recbytes=0;
static UCHAR  recbuff[20000];


void DELAY(DWORD loop)
{
	
	DWORD n;
	for(n=0;n<loop;n++);
//	printf("loop=%d\n",n);
}

__inline static UCHAR peekb(UCHAR *reg,UCHAR offset)
{
    while(lock==1);
	*reg=offset;
	DELAY(100);
	UCHAR date=*(reg+8);
	lock=0;
	return date;
}




__inline static void pokeb(UCHAR *reg,UCHAR offset,UCHAR value)
{
	while(lock==1);
	*reg=offset;
	DELAY(100);
	*(reg+8)=value;
	lock=0;
}




static DWORD WINAPI
CSDTESTDispatchThread(
                   PVOID   pContext 
				     )
{

	pCAN_OPEN_INFO  pCSDHead=(pCAN_OPEN_INFO)pContext;
	while(1){
	DWORD WaitReturn = WaitForSingleObject(pCSDHead->hCANEvent, INFINITE);
	printf("ready to read\n");
	recbytes=CSDRead(pCSDHead,recbuff,1300);
	printf("recbytes=%d\n",recbytes);

	printf("test words:1,%x,%x,%x,%x,%x,%x\n",recbuff[0],recbuff[1],recbuff[2],recbuff[3],recbuff[4],recbuff[5]);
	printf("test words:1300,%x,%x,%x,%x,%x,%x\n",recbuff[1287],recbuff[1288],recbuff[1289],recbuff[1290],recbuff[1291],recbuff[1292]);
	printf("test words:130,%x,%x,%x,%x,%x,%x\n",recbuff[117],recbuff[118],recbuff[119],recbuff[120],recbuff[121],recbuff[122]);
	
	
	
	}

}





void main(void)
{
	HANDLE pDispatchThread;
	UCHAR buff[15000];
	ULONG m,n,l=0,totle;
printf("CAN_RPACKET=%d\n",sizeof(CAN_RPACKET));
	for(n=0;n<1000;n++)
	{
		buff[l++]=0x88;
		buff[l++]=0x08;
		buff[l++]=0x00;
		buff[l++]=0xcd;
		buff[l++]=0xa0;
		for(m=0;m<8;m++)
		buff[l++]=n;//n;
	}


	pCAN_OPEN_INFO pHead1,pHead2;
	printf ("go to init\n");
	if(!(pHead1=CSDInit(2)))
	{
		printf ("initFailed\n");
		//return;
	}
	if(!CSDOpen(pHead1))
	{
		printf("openFailed\n");
	
		return;
	}
	else
	{
		printf("open ok,can is ready!\n");
	}


	if(!(pHead2=CSDInit(1)))
	{
		printf ("initFailed\n");
		//return;
	}
	if(!CSDOpen(pHead2))
	{
		printf("openFailed\n");
	
		return;
	}
	else
	{
	 	printf("open ok,can is ready!\n");
	}


	printf("ready to creatthread\n");
   
    if ((pDispatchThread=CreateThread(NULL,0,CSDTESTDispatchThread,pHead2, 0,NULL))==NULL) {
        printf("Failed to creatthread\n");
		return;
    }
	

	if(!(totle=CSDWrite(pHead1,buff,1300)))
	{
		printf("write failed");
	}
	else 
	{
		printf("write words=%d\n",totle);
		
	}
	/*	if(!(totle=CSDWrite(pHead2,buff,1300)))
	{
		printf("write failed");
	}
	else 
	{
		printf("write words=%d\n",totle);
		
	}
	*/
	Sleep(3000);
	pCAN_OPEN_INFO  pCSDHead    = (pCAN_OPEN_INFO)pHead1;

	printf("dwFIFO_Out=%d\n",pCSDHead->CSDHead.pXmitBuffer->dwFIFO_Out);
	printf("dwFIFO_In=%d\n",pCSDHead->CSDHead.pXmitBuffer->dwFIFO_In);
	
	
		if(!CSDClose(pHead1))
	{
		printf("CSDClose failed\n");
				return;
	}
			if(!CSDClose(pHead2))
	{
		printf("CSDClose failed\n");
				return;
	}

	printf("CSDClose OK\n");
//	totle=CSDWrite(pHead,buff,130);
//	printf("%d bytes sended",totle);
//	CSDClose(pHead);
//	

	CloseHandle(pDispatchThread);
	return;
}


⌨️ 快捷键说明

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