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

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

?? sja1000.c

?? 有關(guān)sja1000的can總線驅(qū)動 其中包含詳細的Makefile很好用
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*
****************************************Copyright (c)**************************************************
**                                  廣州致遠電子有限公司
**                                        CAN開發(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ù)說明		:	bIsRst	->	TURE	SJA1000進入軟件復(fù)位模式	
**				:				FALSE	SJA1000退出軟件復(fù)位模式
**返回值		:	TURE	->	成功完成相應(yīng)設(shè)置
**				:	FALSE	->	設(shè)置失敗
**說	明		:	
********************************************************************************************************************
*/
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ù)說明		:	Val		->	設(shè)置模式值	MOD_LOM			只聽模式
**				:							MOD_STM			自測試模式
**				:							MOD_AFM_SIG		單濾波方式
**				:							MOD_AFM_DOB		雙濾波方式
**				:	bIsEn	->	設(shè)定方式	TRUE			使能設(shè)定
**				;							FALSE			禁能設(shè)定
**返回值		:	TURE	->	成功完成相應(yīng)設(shè)置
**				:	FALSE	->	設(shè)置失敗	
**說	明		:	該函數(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ù)說明		:	IsEn	->	SJA1000請求進入復(fù)位模式
**返回值		:	TURE	->	成功完成相應(yīng)設(shè)置
**				:	FALSE	->	設(shè)置失敗	
**說	明		:	該函數(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ù)說明		:	Cmd		->	命令字	CMR_NOM_SD	正常發(fā)送
**				:						CMR_SIG_SD	單次發(fā)送
**				:						CMR_SLF_SD	自發(fā)自收
**				:						CMR_CL_BUF	釋放接收緩緩沖區(qū)
**				:						CMR_CL_DATA	清除數(shù)據(jù)溢出狀態(tài)
**返回值		:	無
**說	明		:	每次調(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ù)說明		:	Val		->	中斷值	IER_RC--IER_BE
**				:	IsEn	->	是否使能該中斷
**返回值		:	
**說	明		:	中斷值可并聯(lián)使用,全部使能,禁能中斷時可使用 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ù)說明		:	BaudVal		->	波特率值,由 定時器0<<8|定時器1 組成
**返回值		:	
**說	明		:	該函必須在軟件復(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ù)說明		:	Val		->	輸出模式值
**返回值		:	
**說	明		:	通常設(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ù)說明		:	CAN_Mod		->	CAN模式值	BAIS_CAN
**				:								PELI_CAN
**				:	bRxINTEn	->	是否使用Tx1引腳作為接收中斷指示
**				:	bClkOFF		->	是否使用頻率輸出引腳
**				:	Div			->	0-7,表示(Val+1)*2分頻
**返回值		:	
**說	明		:	該函數(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ù)說明		:	pTxInfo		->	發(fā)送數(shù)據(jù)的結(jié)構(gòu)體指針
**返回值		:	
**說	明		:	調(diào)用該函數(shù)寫入欲發(fā)送的數(shù)據(jù)
********************************************************************************************************************
*/
void SetTxBuf(stcSJA1000_BufInfo *pTxInfo)
{
	INT8U	i;
	INT32U	IDTemp;
	Write_SJA1000(pTxInfo->FrIf.Byte,TXBUF);
	if(1 == pTxInfo->FrIf.Bits.FF)

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本黄色一区二区| 日韩午夜激情av| 免费在线观看一区| 欧美高清一级片在线观看| 欧美四级电影网| 懂色av中文一区二区三区| 日韩成人一区二区三区在线观看| 国产人成一区二区三区影院| 欧美日韩不卡一区二区| 97久久精品人人澡人人爽| 精彩视频一区二区三区| 午夜精品久久久久久久99樱桃| 国产女人aaa级久久久级| 欧美一区二区性放荡片| 91一区二区在线| 国产剧情一区在线| 麻豆精品一二三| 亚洲成av人影院| 亚洲精品日日夜夜| 中文字幕欧美一区| 中文字幕av资源一区| 精品国产乱码久久久久久夜甘婷婷 | 亚洲国产精品一区二区www在线| 国产亚洲人成网站| 日韩一二三四区| 欧美福利视频一区| 欧美日韩三级在线| 欧美婷婷六月丁香综合色| 成人国产视频在线观看| 国产综合色精品一区二区三区| 蜜臀av亚洲一区中文字幕| 亚洲国产视频一区二区| 一区二区欧美在线观看| 亚洲精品成人悠悠色影视| 国产精品毛片a∨一区二区三区| 国产亚洲综合av| 国产亚洲成av人在线观看导航| 久久久久成人黄色影片| 久久精品一区二区| 中文字幕不卡一区| 国产精品久久久久毛片软件| 国产精品久久久久久久久搜平片 | 日韩黄色一级片| 日本伊人精品一区二区三区观看方式| 亚洲午夜av在线| 日本不卡高清视频| 免费成人av在线| 久久精品久久精品| 国产乱色国产精品免费视频| 国产精品夜夜嗨| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 国产乱子轮精品视频| 国产成人精品一区二区三区四区 | 91色porny| 在线观看视频91| 精品视频一区二区三区免费| 欧美久久免费观看| 精品国产乱码久久久久久图片 | 911精品产国品一二三产区| 7799精品视频| 精品国产髙清在线看国产毛片| 欧美电影免费观看高清完整版在线观看 | 色综合久久中文字幕| 欧美日韩一级片在线观看| 日韩一区二区三区电影| 久久久久国产精品人| 最新久久zyz资源站| 亚洲大片精品永久免费| 国内成人精品2018免费看| 国产成人精品一区二| 欧美综合欧美视频| 精品国产一区二区亚洲人成毛片| 久久精品人人做人人综合| 亚洲美女在线国产| 欧美96一区二区免费视频| 成熟亚洲日本毛茸茸凸凹| 日本电影欧美片| 中文字幕第一区综合| 亚洲午夜精品久久久久久久久| 久久99久久99精品免视看婷婷| 成人精品免费网站| 欧美日韩视频第一区| 久久久久久黄色| 亚洲国产综合91精品麻豆| 极品少妇xxxx偷拍精品少妇| 99re66热这里只有精品3直播| 欧美伦理电影网| 国产精品日产欧美久久久久| 五月激情六月综合| 成人黄页毛片网站| 欧美一区二区免费观在线| 国产精品久久一卡二卡| 全国精品久久少妇| 色综合天天性综合| 日韩一本二本av| 国产精品午夜免费| 另类中文字幕网| 欧美性大战久久久久久久| 国产欧美日韩亚州综合| 午夜av一区二区| 成人免费视频app| 欧美不卡视频一区| 亚洲成人一区二区在线观看| 成人黄色国产精品网站大全在线免费观看| 91精品综合久久久久久| 亚洲欧美一区二区三区久本道91| 国产美女视频91| 日韩欧美高清dvd碟片| 亚洲国产精品自拍| 91同城在线观看| 国产精品视频观看| 激情五月婷婷综合| 制服丝袜av成人在线看| 亚洲综合图片区| 一本久久精品一区二区| 国产欧美1区2区3区| 国产一区三区三区| 日韩欧美视频在线| 日本欧美一区二区| 欧美日韩国产大片| 亚洲宅男天堂在线观看无病毒| 国产ts人妖一区二区| 精品国产一区二区亚洲人成毛片| 丝袜脚交一区二区| 欧美日韩国产成人在线免费| 一区二区三区精品在线| 色综合一个色综合亚洲| 亚洲国产激情av| 国产一区二区看久久| 久久久久国产精品厨房| 国产一区二区三区久久悠悠色av| 欧美成人一区二区三区片免费| 日韩av不卡一区二区| 在线电影院国产精品| 日韩精品视频网| 欧美理论在线播放| 日韩国产高清影视| 日韩欧美在线观看一区二区三区| 无吗不卡中文字幕| 欧美日韩精品免费| 日韩高清不卡在线| 91精品国产91久久久久久最新毛片| 亚洲r级在线视频| 88在线观看91蜜桃国自产| 日本大胆欧美人术艺术动态| 3atv在线一区二区三区| 日韩中文字幕亚洲一区二区va在线| 欧美三级电影在线观看| 午夜av一区二区三区| 欧美电视剧免费全集观看| 黄网站免费久久| 亚洲国产成人午夜在线一区| 成人污视频在线观看| 亚洲精品国产一区二区精华液 | 亚洲欧美综合另类在线卡通| 97se亚洲国产综合自在线不卡| 玉足女爽爽91| 欧美日韩成人在线| 精品无码三级在线观看视频| 亚洲国产成人午夜在线一区| 一本色道综合亚洲| 日韩国产高清影视| 国产蜜臀97一区二区三区| 99r精品视频| 偷偷要91色婷婷| 久久色在线观看| 99精品国产热久久91蜜凸| 亚洲777理论| 国产亚洲综合色| 色乱码一区二区三区88| 日本美女视频一区二区| 国产女同性恋一区二区| 欧美视频在线一区二区三区| 久久国产精品72免费观看| 国产精品麻豆久久久| 欧美日韩精品是欧美日韩精品| 黑人精品欧美一区二区蜜桃| 亚洲婷婷在线视频| 日韩你懂的在线播放| 99久久精品免费看国产| 日韩高清中文字幕一区| 国产精品理论片在线观看| 欧美日韩午夜在线| 国产九色sp调教91| 亚洲妇女屁股眼交7| 久久久电影一区二区三区| 欧洲一区在线观看| 国产在线视视频有精品| 亚洲综合在线电影| 久久毛片高清国产| 欧美日韩不卡视频| 成人精品国产一区二区4080| 亚洲国产精品综合小说图片区| 国产三级一区二区| 欧美一区二区视频网站| 91蝌蚪porny成人天涯| 国内外成人在线视频| 午夜精品久久久久久久久久| 国产精品福利在线播放| 日韩西西人体444www|