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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? sja1000.c

?? 有關(guān)sja1000的can總線驅(qū)動(dòng) 其中包含詳細(xì)的Makefile很好用
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
/*
****************************************Copyright (c)**************************************************
**                                  廣州致遠(yuǎn)電子有限公司
**                                        CAN開(kāi)發(fā)組 
**                                 http://www.zyinside.com
**
**
**--------------文件信息--------------------------------------------------------------------------------
**文   件   名:	SJA1000.c
**創(chuàng)   建   人:	滕欣欣
**創(chuàng) 建  日 期: 2005-04-13
**描        述:	SJA1000 CAN控制器操作函數(shù)定義
**最后修改日期:	2006-03-03
**原 始  版 本:	v1.0
**最 后  版 本:	v1.2
**--------------歷史修改--------------------------------------------------------------------------------
**修   改   人:
**修 改  日 期:
**修 改  原 因:
**修 改  版 本:
********************************************************************************************************
*/
#include "SJA1000.h"
#include "config.h"

extern stcSJA1000_BufInfo SJA1000_RxBuf;
/*
********************************************************************************************************************
**函數(shù)原型		:  	BOOL SJA_SoftRst(BOOL bIsRst)
**參數(shù)說(shuō)明		:	bIsRst	->	TURE	SJA1000進(jìn)入軟件復(fù)位模式	
**				:				FALSE	SJA1000退出軟件復(fù)位模式
**返回值		:	TURE	->	成功完成相應(yīng)設(shè)置
**				:	FALSE	->	設(shè)置失敗
**說(shuō)	明		:	
********************************************************************************************************************
*/
BOOL SJA_SoftRst(BOOL IsRst)
{
	uRsgMod ModTemp;
	INT8U Statu;
	
	ModTemp.Byte = Read_SJA1000(MOD)&0x1F;
	ModTemp.Bits.RM = (TRUE == IsRst)? 1:0;
	Write_SJA1000(ModTemp.Byte, MOD);
	
	ModTemp.Byte = Read_SJA1000(MOD)&0x1F;
	Statu = (ModTemp.Bits.RM == 1)? TRUE:FALSE;
	
	return (Statu == IsRst)? TRUE:FALSE;
}
/*
********************************************************************************************************************
**函數(shù)原型		:  	BOOL SetModeReg(INT8U Val, BOOL bIsEn)
**參數(shù)說(shuō)明		:	Val		->	設(shè)置模式值	MOD_LOM			只聽(tīng)模式
**				:							MOD_STM			自測(cè)試模式
**				:							MOD_AFM_SIG		單濾波方式
**				:							MOD_AFM_DOB		雙濾波方式
**				:	bIsEn	->	設(shè)定方式	TRUE			使能設(shè)定
**				;							FALSE			禁能設(shè)定
**返回值		:	TURE	->	成功完成相應(yīng)設(shè)置
**				:	FALSE	->	設(shè)置失敗	
**說(shuō)	明		:	該函數(shù)設(shè)定SJA1000模式,必須在軟件復(fù)位模式中調(diào)用,否則失敗,模式值可并聯(lián)使用
********************************************************************************************************************
*/
BOOL SetModeReg(INT8U Val, BOOL bIsEn)
{
	uRsgMod ModTemp;
	ModTemp.Byte = Read_SJA1000(MOD)&0x1F;
	if(ModTemp.Bits.RM)
	{
		if(Val&MOD_LOM)
		{
			ModTemp.Bits.LOM = (TRUE == bIsEn)? 1:0;
		}
		if(Val&MOD_STM)
		{
			ModTemp.Bits.STM = (TRUE == bIsEn)? 1:0;
		}
		if(Val&MOD_AFM_SIG)
		{
			ModTemp.Bits.AFM = 1;
		}
		if(Val&MOD_AFM_DOB)
		{
			ModTemp.Bits.AFM = 0;
		}
	}
	else
		return FALSE;
	Write_SJA1000(ModTemp.Byte,MOD);
	if(ModTemp.Byte == (Read_SJA1000(MOD)&0x1F))
	{
		return TRUE;
	}
	else
		return FALSE;
}
/*
********************************************************************************************************************
**函數(shù)原型		:  	BOOL EnterSleepMod(BOOL IsEn)
**參數(shù)說(shuō)明		:	IsEn	->	SJA1000請(qǐng)求進(jìn)入復(fù)位模式
**返回值		:	TURE	->	成功完成相應(yīng)設(shè)置
**				:	FALSE	->	設(shè)置失敗	
**說(shuō)	明		:	該函數(shù)必須在工作模式下調(diào)用,否則失敗
********************************************************************************************************************
*/
BOOL EnterSleepMod(BOOL IsEn)
{
	uRsgMod ModTemp;
	INT8U Statu;
	ModTemp.Byte = Read_SJA1000(MOD)&0x1F;
	if(ModTemp.Bits.RM) return FALSE;
	ModTemp.Bits.SM = (TRUE == IsEn)? 1:0;
	Write_SJA1000(ModTemp.Byte,MOD);
	ModTemp.Byte = Read_SJA1000(MOD)&0x1F;
	Statu = (ModTemp.Bits.SM == 1)? TRUE:FALSE;
	return (Statu == IsEn)? TRUE:FALSE;
}
/*
********************************************************************************************************************
**函數(shù)原型		:  	BOOL SetCommand(INT8U Cmd)
**參數(shù)說(shuō)明		:	Cmd		->	命令字	CMR_NOM_SD	正常發(fā)送
**				:						CMR_SIG_SD	單次發(fā)送
**				:						CMR_SLF_SD	自發(fā)自收
**				:						CMR_CL_BUF	釋放接收緩緩沖區(qū)
**				:						CMR_CL_DATA	清除數(shù)據(jù)溢出狀態(tài)
**返回值		:	無(wú)
**說(shuō)	明		:	每次調(diào)用該函數(shù)只能發(fā)送一條命令值
********************************************************************************************************************
*/
void SetCommand(INT8U Cmd)
{
	uRsgCmd CMRTemp;
	CMRTemp.Byte = 0;
	switch(Cmd) 
	{
		case CMR_SIG_SD:
			CMRTemp.Bits.AT = 1;
		case CMR_NOM_SD:
			if(1 == (Read_SJA1000(MOD)&0x04))
			{
				while(TRUE != SJA_SoftRst(TRUE));
				while(TRUE != SetModeReg(MOD_STM,FALSE));
				while(TRUE != SJA_SoftRst(FALSE));
			}
			CMRTemp.Bits.TR = 1;
			break;
		case CMR_SLF_SD:
			if(0 == (Read_SJA1000(MOD)&0x04))
			{
				while(TRUE != SJA_SoftRst(TRUE));
				while(TRUE != SetModeReg(MOD_STM,TRUE));
				while(TRUE != SJA_SoftRst(FALSE));
			}
			CMRTemp.Bits.SRR = 1;
			CMRTemp.Bits.AT = 1;
			break;
		case CMR_CL_BUF:
			CMRTemp.Bits.RR = 1;
			break;
		case CMR_CL_DATA:
			CMRTemp.Bits.CDO = 1;
			break;
		default:
			break;
	}
	Write_SJA1000(CMRTemp.Byte,CMR);
}
/*
********************************************************************************************************************
**函數(shù)原型		:  	BOOL SetInterrupt(INT8U Val, BOOL IsEn)
**參數(shù)說(shuō)明		:	Val		->	中斷值	IER_RC--IER_BE
**				:	IsEn	->	是否使能該中斷
**返回值		:	
**說(shuō)	明		:	中斷值可并聯(lián)使用,全部使能,禁能中斷時(shí)可使用 IER_ALL
********************************************************************************************************************
*/
BOOL SetInterrupt(INT8U Val, BOOL IsEn)
{
	INT8U IntVal;
	INT8U temp;
	if(TRUE == IsEn)
	{
		Write_SJA1000(Val,IER);
		temp = Read_SJA1000(IER);
		if(temp == Val)
		{
			return TRUE;
		}
		else
		{
			return FALSE;
		}
	}
	else
	{
		IntVal = Read_SJA1000(IER);
		IntVal &= ~Val;
		Write_SJA1000(IntVal,IER);
		return (IntVal == Read_SJA1000(IER))? TRUE:FALSE;
	}
}
/*
********************************************************************************************************************
**函數(shù)原型		:  	BOOL SetBaudRate(INT16U BaudVal)
**參數(shù)說(shuō)明		:	BaudVal		->	波特率值,由 定時(shí)器0<<8|定時(shí)器1 組成
**返回值		:	
**說(shuō)	明		:	該函必須在軟件復(fù)位模式下調(diào)用
********************************************************************************************************************
*/
BOOL SetBaudRate(INT16U BaudVal)
{
	INT16U h, l;
	if(1 == (Read_SJA1000(MOD)&0x01))
	{
		Write_SJA1000((INT8U)(BaudVal>>8),BTR0);
		Write_SJA1000((INT8U)(BaudVal&0xFF),BTR1);
		
		h = Read_SJA1000(BTR0) << 8;
		l = Read_SJA1000(BTR1);
		
		if(BaudVal == (h + l))
		{
			return TRUE;
		}
		else
		{
			return FALSE;
		}
	}
	else
		return FALSE;

}
/*
********************************************************************************************************************
**函數(shù)原型		:  	BOOL SetOutPutMod(INT8U Val)
**參數(shù)說(shuō)明		:	Val		->	輸出模式值
**返回值		:	
**說(shuō)	明		:	通常設(shè)為0x1A
********************************************************************************************************************
*/
BOOL SetOutPutMod(INT8U Val)
{
	Write_SJA1000(Val,OCR);
	return (Val == Read_SJA1000(OCR))? TRUE:FALSE;
}
/*
********************************************************************************************************************
**函數(shù)原型		:  	BOOL SetClkDiv(INT8U CAN_Mod,BOOL bRxINTEn,BOOL bClkOFF,INT8U Div)
**參數(shù)說(shuō)明		:	CAN_Mod		->	CAN模式值	BAIS_CAN
**				:								PELI_CAN
**				:	bRxINTEn	->	是否使用Tx1引腳作為接收中斷指示
**				:	bClkOFF		->	是否使用頻率輸出引腳
**				:	Div			->	0-7,表示(Val+1)*2分頻
**返回值		:	
**說(shuō)	明		:	該函數(shù)必須在軟件復(fù)位模式下調(diào)用
********************************************************************************************************************
*/
BOOL SetClkDiv(INT8U CAN_Mod,BOOL bRxINTEn,BOOL bClkOFF,INT8U Div)
{
	INT8U CDRTemp = 0;
	INT8U RxINTTemp = (bRxINTEn == TRUE)? 1:0;
	INT8U ClkOffTemp = (bClkOFF == TRUE)? 1:0;
	if(1 == (Read_SJA1000(MOD)&0x01))
	{
		CDRTemp = CAN_Mod<<7|0x01<<6|RxINTTemp<<5|ClkOffTemp<<3|Div;
		Write_SJA1000(CDRTemp,CDR);
	}
	else
		return FALSE;
	return ((CDRTemp == Read_SJA1000(CDR))? TRUE:FALSE);
}
/*
********************************************************************************************************************
**函數(shù)原型		:  	void SetTxBuf(stcSJA1000_TxInfo *pTxInfo)
**參數(shù)說(shuō)明		:	pTxInfo		->	發(fā)送數(shù)據(jù)的結(jié)構(gòu)體指針
**返回值		:	
**說(shuō)	明		:	調(diào)用該函數(shù)寫(xiě)入欲發(fā)送的數(shù)據(jù)
********************************************************************************************************************
*/
void SetTxBuf(stcSJA1000_BufInfo *pTxInfo)
{
	INT8U	i;
	INT32U	IDTemp;
	Write_SJA1000(pTxInfo->FrIf.Byte,TXBUF);
	if(1 == pTxInfo->FrIf.Bits.FF)

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色女孩综合影院| 欧美一区二区三区白人| 中文字幕av一区二区三区免费看| 精品一区二区影视| 欧美成人女星排行榜| 日韩av电影免费观看高清完整版在线观看| 欧美亚洲免费在线一区| 亚洲免费在线视频| 色婷婷av一区二区三区软件| 亚洲另类在线一区| 色欧美日韩亚洲| 亚洲成人1区2区| 欧美一区二区三区在线看| 日韩电影在线一区| 欧美成人性福生活免费看| 国产一区二区三区久久久| 久久综合国产精品| 国产一区二区三区在线观看免费 | 欧美视频中文一区二区三区在线观看| 亚洲伦在线观看| 欧美综合久久久| 亚洲午夜久久久久久久久电影院 | 韩国在线一区二区| 久久久91精品国产一区二区精品| 国产91丝袜在线播放九色| 国产精品青草久久| 色天天综合色天天久久| 午夜一区二区三区在线观看| 欧美丰满高潮xxxx喷水动漫| 欧美a级理论片| 久久先锋影音av鲁色资源网| 成人午夜精品一区二区三区| 亚洲男女毛片无遮挡| 欧美理论片在线| 久久草av在线| 中文字幕在线不卡国产视频| 日本道色综合久久| 日韩**一区毛片| 精品理论电影在线| 丁香婷婷综合色啪| 亚洲综合久久久| 日韩一区二区在线免费观看| 国产suv精品一区二区三区| 亚洲精品伦理在线| 欧美一级二级三级乱码| 国产精品一线二线三线精华| 亚洲免费在线播放| 日韩三级中文字幕| 成人av资源下载| 婷婷国产在线综合| 欧美—级在线免费片| 欧美天天综合网| 国产精品香蕉一区二区三区| 亚洲伦理在线免费看| 欧美大片在线观看一区二区| 粗大黑人巨茎大战欧美成人| 亚洲成人精品影院| 久久久久久久综合| 欧美在线色视频| 国内精品免费**视频| 亚洲精品成人精品456| 日韩午夜激情电影| eeuss鲁片一区二区三区在线观看| 午夜精品久久久| 国产精品国产三级国产普通话三级 | 国产乱淫av一区二区三区 | 中文字幕日韩av资源站| 欧美福利视频一区| 成人国产精品免费| 色噜噜夜夜夜综合网| 水野朝阳av一区二区三区| 欧美国产成人精品| 欧美一级理论片| 色网综合在线观看| 国产乱码精品一区二区三| 亚洲一区日韩精品中文字幕| 久久久久久亚洲综合| 欧美精品久久一区二区三区| 9i看片成人免费高清| 狠狠色丁香久久婷婷综| 亚洲成人免费电影| 中文字幕一区二区三区不卡| 日韩欧美国产成人一区二区| 一本色道久久综合亚洲91| 国产一区二区免费看| 午夜久久久久久电影| 亚洲欧洲精品一区二区三区不卡| 日韩欧美在线一区二区三区| 在线精品视频一区二区| 国产99精品视频| 麻豆精品在线视频| 午夜视频在线观看一区二区| 亚洲欧洲av在线| 久久久不卡网国产精品一区| 91精品久久久久久蜜臀| 91福利精品第一导航| 成人免费三级在线| 国产一区二区三区| 麻豆成人av在线| 五月综合激情婷婷六月色窝| 亚洲视频在线一区观看| 中文字幕 久热精品 视频在线| 日韩欧美自拍偷拍| 91精品久久久久久久99蜜桃| 欧洲一区二区三区免费视频| www.久久精品| 高清成人在线观看| 国产一区二区在线观看视频| 蜜桃精品在线观看| 日本成人在线电影网| 午夜国产精品影院在线观看| 亚洲午夜视频在线观看| 一区二区三区在线视频播放| 成人欧美一区二区三区黑人麻豆| 久久久久国产精品麻豆ai换脸| 精品日韩在线观看| 欧美一级夜夜爽| 91精品国产乱| 日韩一区二区三区在线| 7777精品久久久大香线蕉| 欧美日韩精品一区二区| 欧美三级在线视频| 欧美丝袜丝nylons| 欧美日韩国产成人在线91| 欧美日韩激情在线| 欧美狂野另类xxxxoooo| 欧美片网站yy| 91精品国产色综合久久| 日韩三级免费观看| 日韩精品自拍偷拍| 久久综合国产精品| 国产三级久久久| 中文字幕av一区二区三区| 国产精品激情偷乱一区二区∴| 中文字幕一区二区不卡| 亚洲人成在线观看一区二区| 伊人开心综合网| 亚洲成人手机在线| 蜜臀久久99精品久久久久宅男| 久久国产精品一区二区| 国产精品一区二区免费不卡| 粉嫩13p一区二区三区| 92国产精品观看| 91国模大尺度私拍在线视频| 欧美色精品在线视频| 成人免费一区二区三区在线观看| 国产精品久久夜| 亚洲男人的天堂在线aⅴ视频| 亚洲一区在线视频| 日本不卡视频在线观看| 国产乱对白刺激视频不卡| 成人免费av在线| 91福利视频网站| 日韩亚洲欧美在线观看| 久久久精品综合| 国产精品成人一区二区三区夜夜夜| 亚洲天堂精品在线观看| 亚洲1区2区3区4区| 久久99久久久久久久久久久| 国产宾馆实践打屁股91| 色婷婷精品大视频在线蜜桃视频| 欧美精品免费视频| 国产亚洲福利社区一区| 亚洲视频一区二区在线| 日韩av网站在线观看| 懂色av噜噜一区二区三区av| 91国在线观看| 日韩精品一区二区在线| 国产欧美一区二区精品忘忧草| 国产精品传媒入口麻豆| 视频一区在线视频| 国产福利不卡视频| 欧洲生活片亚洲生活在线观看| 日韩欧美国产精品| 亚洲特黄一级片| 男男成人高潮片免费网站| 国产91露脸合集magnet| 精品婷婷伊人一区三区三| 亚洲精品一区二区三区精华液 | 亚洲一区二区三区国产| 精品在线亚洲视频| 91麻豆国产在线观看| 日韩欧美一级片| 亚洲欧美日韩在线播放| 美国十次了思思久久精品导航| av成人免费在线观看| 欧美一区二区三区影视| 亚洲欧洲99久久| 麻豆一区二区三| 91麻豆.com| 精品免费视频一区二区| 亚洲精品视频免费看| 国产综合久久久久久久久久久久| 在线亚洲人成电影网站色www| 日韩网站在线看片你懂的| 亚洲视频一区二区在线观看| 精品一区二区三区久久| 在线影视一区二区三区| 国产日产欧美精品一区二区三区| 午夜精品成人在线视频|