亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? sja1000.c

?? 有關(guān)sja1000的can總線驅(qū)動 其中包含詳細(xì)的Makefile很好用
?? C
?? 第 1 頁 / 共 2 頁
字號:
	{
		IDTemp = pTxInfo->FrID<<3;
		for(i=0; i<4; i++)
		{
			Write_SJA1000((INT8U)(IDTemp>>8*(3-i)),TXBUF+1+i);
		}
		for(i=0; i<pTxInfo->FrIf.Bits.DLC; i++)
		{
			Write_SJA1000(pTxInfo->DA[i],TXBUF+5+i);
		}
	}
	else
	{
		IDTemp = pTxInfo->FrID<<21;
		for(i=0; i<2; i++)
		{
			Write_SJA1000((INT8U)(IDTemp>>8*(3-i)),TXBUF+1+i);
		}
		for(i=0; i<pTxInfo->FrIf.Bits.DLC; i++)
		{
			Write_SJA1000(pTxInfo->DA[i],TXBUF+3+i);
		}
	}
		
}
/*
********************************************************************************************************************
**函數(shù)原型		:  	BOOL ReadRcvBuf(stcSJA1000_BufInfo *pRcvBuf)
**參數(shù)說明		:	pRcvBuf		->	接收輸出數(shù)據(jù)的結(jié)構(gòu)體指針
**返回值		:	
**說	明		:	調(diào)用該函數(shù)接收CAN數(shù)據(jù)
********************************************************************************************************************
*/
BOOL ReadRcvBuf(stcSJA1000_BufInfo *pRcvBuf)
{
	INT8U i;
	INT32U IDTemp = 0;
	if(pRcvBuf == NULL) return FALSE;
	pRcvBuf->FrIf.Byte =  Read_SJA1000(RXBUF);
	pRcvBuf->FrID = 0;
	if(pRcvBuf->FrIf.Bits.FF == 1)
	{
		for(i=0; i<4; i++)
		{
			IDTemp = Read_SJA1000(RXBUF+1+i);
			IDTemp = (IDTemp<<(24-(8*i)));
			pRcvBuf->FrID |= IDTemp;
			IDTemp = 0;
		}
		pRcvBuf->FrID >>= 3;
		for(i=0; i<pRcvBuf->FrIf.Bits.DLC; i++)
		{
			pRcvBuf->DA[i] = Read_SJA1000(RXBUF+5+i);
		}
	}
	else
	{
		for(i=0; i<2; i++)
		{
			IDTemp = Read_SJA1000(RXBUF+1+i);
			IDTemp = (IDTemp<<(24-(8*i)));
			pRcvBuf->FrID |= IDTemp;
			IDTemp = 0; 
		}
		pRcvBuf->FrID >>= 21;
		for(i=0; i<pRcvBuf->FrIf.Bits.DLC; i++)
		{
			pRcvBuf->DA[i] = Read_SJA1000(RXBUF+3+i);
		}
	}
	return TRUE;
}
/*
********************************************************************************************************************
**函數(shù)原型		:  	BOOL ACRCode(INT32U ACRCode)
**參數(shù)說明		:	ACRCode		->	驗收代碼值	ACR0_ACR1_ACR2_ACR3
**返回值		:	
**說	明		:	調(diào)用該函數(shù)設(shè)置驗收代碼
********************************************************************************************************************
*/
BOOL ACRCode(INT32U ACRCode)
{
	int i;
	for(i=0; i<4; i++)
	{
		Write_SJA1000((INT8U)(ACRCode>>(24-8*i)),ACR0+i);
	}
	for (i=0; i<4; i++)
	{
		if((INT8U)(ACRCode>>(24-8*i)) != Read_SJA1000(ACR0+i))
		{
			return FALSE;
		}
	}
	return TRUE;
}
/*
********************************************************************************************************************
**函數(shù)原型		:  	BOOL AMRCode(INT32U AMRCode)
**參數(shù)說明		:	AMRCode		->	驗收屏蔽碼	AMR0_AMR1_AMR2_AMR3
**返回值		:	
**說	明		:	調(diào)用該函數(shù)設(shè)置驗收屏蔽碼
********************************************************************************************************************
*/
BOOL AMRCode(INT32U AMRCode)
{
	int i;
	for(i=0; i<4; i++)
	{
		Write_SJA1000((INT8U)(AMRCode>>(24-8*i)),AMR0+i);
	}
	for (i=0; i<4; i++)
	{
		if((INT8U)(AMRCode>>(24-8*i)) != Read_SJA1000(AMR0+i))
		{
			return FALSE;
		}
	}
	return TRUE;
}
/*
********************************************************************************************************************
**函數(shù)原型		:  	BOOL SetFliter(INT32U ACRCode, INT32U AMRCode)
**參數(shù)說明		:	ACRCode		->	驗收代碼值	ACR0_ACR1_ACR2_ACR3
**				:	AMRCode		->	驗收屏蔽碼	AMR0_AMR1_AMR2_AMR3
**返回值		:	
**說	明		:	調(diào)用該函數(shù)寫入欲發(fā)送的數(shù)據(jù)
********************************************************************************************************************
*/
BOOL SetFliter(INT32U ACRCode, INT32U AMRCode)
{
	INT8U i;
	for(i=0; i<4; i++)
	{
		Write_SJA1000((INT8U)(ACRCode>>(24-8*i)),ACR0+i);
	}
	for(i=0; i<4; i++)
	{
		Write_SJA1000((INT8U)(AMRCode>>(24-8*i)),AMR0+i);
	}
	for (i=0; i<4; i++)
	{
		if((INT8U)(ACRCode>>(24-8*i)) != Read_SJA1000(ACR0+i))
		{
			return FALSE;
		}
	}
	for (i=0; i<4; i++)
	{
		if((INT8U)(AMRCode>>(24-8*i)) != Read_SJA1000(AMR0+i))
		{
			return FALSE;
		}
	}
	return TRUE;
}
/*
********************************************************************************************************************
**宏	名		:  	Write_SJA1000(Val, OffSet)
**參數(shù)說明		:	Val		->	欲寫入的數(shù)據(jù)
**				:	OffSet	->	SJA1000片內(nèi)寄存器偏移地址	
**說	明		:	該宏用于寫SJA1000內(nèi)部寄存器
********************************************************************************************************************
*/
void Write_SJA1000(INT8U Val, INT8U OffSet)
{
	//SJA1000_ALE_ADDR = OffSet;
	//SJA1000_DAT_ADDR = Val;
	writeb(OffSet,sja1000_ale);
	writeb(Val,sja1000_dat);
}
/*
********************************************************************************************************************
**宏	名		:  	Read_SJA1000(OffSet)
**參數(shù)說明		:	OffSet	->	SJA1000片內(nèi)寄存器偏移地址	
**說	明		:	該宏用于寫SJA1000內(nèi)部寄存器
********************************************************************************************************************
*/
INT8U Read_SJA1000(INT8U OffSet)
{
	//SJA1000_ALE_ADDR = OffSet;
	//return (INT8U)SJA1000_DAT_ADDR;
	writeb(OffSet,sja1000_ale);
	return readb(sja1000_dat);
}
/*
********************************************************************************************************************
**函數(shù)原型		:  	void IntEnty(void)
**參數(shù)說明		:	NULL
**返回值		:	NULL
**說	明		:	中斷處理入口
********************************************************************************************************************
*/
void IntEnty(void)
{
	INT8U IRTemp = Read_SJA1000(IR);
	if(IR_RC&IRTemp)
	{
		ReadRcvBuf(&SJA1000_RxBuf);
		SetCommand(CMR_CL_BUF);
	}
	if(IR_TR&IRTemp)
	{
	}
	if(IR_ER&IRTemp)
	{
	}
	if(IR_DO&IRTemp)
	{
		SetCommand(CMR_CL_DATA);
	}
	if(IR_WU&IRTemp)
	{
	}
	if(IR_EP&IRTemp)
	{
	}
	if(IR_AL&IRTemp)
	{
	}
	if(IR_BE&IRTemp)
	{
	}
}
/*
********************************************************************************************************************
**函數(shù)原型		:  	BOOL SJA1000Init(INT8U CanMode, INT16U BaudRate,INT32U ACRCode, INT32U AMRCode)
**參數(shù)說明		:	CanMode		->	CAN模式值	BAIS_CAN
**				:								PELI_CAN
**				:	BaudRate	->	波特率值
**				:	ACRCode		->	驗收代碼
**				:	AMRCode		->	驗收屏蔽碼
**返回值		:	
**說	明		:	該函數(shù)必須在軟件復(fù)位模式下調(diào)用
********************************************************************************************************************
*/
BOOL SJA1000Init(INT8U CanMode, INT16U BaudRate,INT32U ACRCode, INT32U AMRCode)
{
	if(TRUE != SJA_SoftRst(TRUE))				//進(jìn)入復(fù)位模式
	{
		printk("SJA_SoftRst Err!.\n");
		return FALSE; 
	}
	if(TRUE != SetModeReg(MOD_AFM_SIG,TRUE))	//設(shè)置驗收過濾方式
	{
		printk("SetModeReg Err!.\n");
		return FALSE;
	}
	if(TRUE != SetInterrupt(IER_RC,TRUE))		//設(shè)置中斷,只開放接收中斷
	{
		printk("SetInterrupt Err!.\n");
		return FALSE;
	}
	if(TRUE != SetClkDiv(CanMode,FALSE,TRUE,0))	//設(shè)置工作模式
	{
		printk("SetClkDiv Err!.\n");
		return FALSE;
	}
	if(TRUE != SetFliter(ACRCode,AMRCode))		//設(shè)置驗收過濾值
	{
		printk("SetFliter Err!.\n");
		return FALSE;
	}
	if(TRUE != SetBaudRate(BaudRate))			//設(shè)置波特率
	{
		printk("SetBaudRate Err!.\n");
		return FALSE;
	}
	if(TRUE != SetOutPutMod(0x1A))				//設(shè)置驅(qū)動輸出模式
	{
		printk("SetOutPutMod Err!.\n");
		return FALSE;
	}
	if(TRUE != SJA_SoftRst(FALSE))				//退出軟件復(fù)位模式
	{
		printk("SJA_SoftRst Err!.\n");
		return FALSE;
	}
	return TRUE;
}
/*
*********************************************************************************************************
**                            End Of File
*********************************************************************************************************
*/

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一级电影网站| 亚洲人被黑人高潮完整版| 亚洲国产美女搞黄色| 色欧美乱欧美15图片| 亚洲猫色日本管| 天天色天天爱天天射综合| 欧美年轻男男videosbes| 三级一区在线视频先锋| 91精品国产综合久久久久久久| 石原莉奈在线亚洲二区| 欧美草草影院在线视频| 国产成人自拍在线| 亚洲人精品午夜| 91亚洲国产成人精品一区二区三| 亚洲区小说区图片区qvod| 在线观看网站黄不卡| 青青草国产成人av片免费| 国产香蕉久久精品综合网| 日本丰满少妇一区二区三区| 欧美群妇大交群中文字幕| 久久国产剧场电影| 中文字幕在线不卡视频| 欧美日韩中字一区| 国产精品18久久久久久久久 | 国产精品 欧美精品| 国产精品久久久久桃色tv| 欧美三级韩国三级日本一级| 中文字幕高清不卡| 欧美三片在线视频观看| 精品亚洲国产成人av制服丝袜| 亚洲欧洲av在线| 7799精品视频| 99在线精品视频| 蜜臀久久99精品久久久久宅男| 午夜日韩在线观看| 色综合激情五月| 精油按摩中文字幕久久| 亚洲乱码一区二区三区在线观看| 欧美一区二区视频在线观看2020 | 日韩午夜在线播放| 99久久久久免费精品国产| 蜜桃视频在线观看一区二区| 综合自拍亚洲综合图不卡区| 精品久久国产字幕高潮| 欧美亚洲愉拍一区二区| 国产成人综合自拍| 美女视频网站久久| 久久国产麻豆精品| 亚洲va韩国va欧美va| 国产欧美一区二区精品性色超碰| 欧美日本在线播放| 99久久精品免费精品国产| 韩国女主播成人在线| 亚洲电影第三页| 亚洲欧洲av在线| 国产精品卡一卡二| 久久久久久久久久久久久久久99| 欧美综合视频在线观看| 成人黄色电影在线| 韩国v欧美v日本v亚洲v| 日韩成人一级大片| 亚洲成人自拍偷拍| 曰韩精品一区二区| 亚洲同性同志一二三专区| 欧美激情一二三区| 久久精品人人做人人爽人人| 日韩女优电影在线观看| 91精品国产91久久久久久一区二区| 97久久精品人人爽人人爽蜜臀| 国产**成人网毛片九色| 国产精品羞羞答答xxdd| 精品午夜一区二区三区在线观看| 日本视频在线一区| 亚洲精品一区二区三区99| 欧美肥妇毛茸茸| 欧美蜜桃一区二区三区| 欧美日韩国产中文| 欧美日韩亚洲综合一区二区三区 | 国产精品一区二区在线观看不卡| 国产成人精品午夜视频免费| 精品一区二区三区视频| 老司机精品视频在线| 久久国产视频网| 国产美女一区二区| 国产白丝精品91爽爽久久| 成人免费高清在线| av不卡在线播放| 91国产福利在线| 在线成人av影院| 精品久久久久av影院| 国产香蕉久久精品综合网| 国产精品国产三级国产aⅴ中文| 国产精品嫩草影院com| 亚洲欧美在线视频观看| 亚洲日本在线视频观看| 亚洲欧美综合色| 亚洲日本在线观看| 日韩免费在线观看| 日韩三级免费观看| 精品国产3级a| 国产日韩亚洲欧美综合| 亚洲国产精品成人综合色在线婷婷 | 欧美国产视频在线| 91欧美一区二区| 在线免费亚洲电影| 欧美日韩亚洲国产综合| 7777精品伊人久久久大香线蕉超级流畅 | www.亚洲色图| 91免费国产在线观看| 色乱码一区二区三区88| 成人免费视频网站在线观看| 一区二区三区蜜桃网| 亚洲国产欧美另类丝袜| 欧美aaa在线| 国产精品一区二区免费不卡| 成人av电影在线播放| 色噜噜狠狠一区二区三区果冻| 日韩不卡一二三区| 麻豆精品国产91久久久久久| 国产一区二区看久久| 99精品黄色片免费大全| 欧美高清精品3d| 久久久777精品电影网影网| 亚洲欧洲精品一区二区精品久久久| 亚洲美女少妇撒尿| 亚洲成人先锋电影| 国产一二精品视频| 91免费在线播放| 欧美电影在线免费观看| 久久久久久久性| 国产欧美日韩亚州综合| 亚洲午夜一二三区视频| 亚洲高清视频的网址| 国产尤物一区二区在线| 一本大道久久a久久综合| 精品乱码亚洲一区二区不卡| 久久影院电视剧免费观看| **性色生活片久久毛片| 美洲天堂一区二卡三卡四卡视频| 91婷婷韩国欧美一区二区| 日韩一区二区高清| 亚洲少妇最新在线视频| 精品亚洲成a人在线观看| 色综合 综合色| 国产精品久久免费看| 欧美成人乱码一区二区三区| 日韩伦理av电影| 综合在线观看色| 奇米一区二区三区| 欧美视频日韩视频在线观看| 久久婷婷成人综合色| 午夜影院久久久| 成人h精品动漫一区二区三区| 欧美主播一区二区三区| 亚洲精品视频在线看| 国产精品一二三区| 欧美精品免费视频| 日韩伦理电影网| 国产在线不卡一卡二卡三卡四卡| 777亚洲妇女| 亚洲国产精品久久人人爱| 成人晚上爱看视频| 欧美本精品男人aⅴ天堂| 日韩一区精品视频| 欧美性生活久久| 亚洲欧美日韩久久| 成人少妇影院yyyy| 国产亚洲欧美在线| 国产一区二区三区香蕉| 日韩一区二区三区四区| 图片区小说区国产精品视频| 色妞www精品视频| 久久一区二区三区四区| 亚洲午夜三级在线| 亚洲视频 欧洲视频| 日本国产一区二区| 亚洲精品欧美激情| 91免费精品国自产拍在线不卡| 亚洲丝袜自拍清纯另类| 国产麻豆91精品| 久久久久久久久久久久电影| 九九视频精品免费| 欧美成人精品1314www| 国产高清久久久久| 国产三级精品视频| 亚洲欧洲一区二区在线播放| 国产精品99久久久| 国产精品久久久久四虎| 在线一区二区三区| 亚洲国产综合91精品麻豆| 在线观看av一区二区| 国产精品欧美极品| 欧美色倩网站大全免费| 爽好多水快深点欧美视频| 欧美一区二区三区视频免费播放| 亚洲成人一二三| 久久久久国产精品厨房| 91在线丨porny丨国产| 亚洲综合在线免费观看| 日韩欧美中文字幕精品|