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

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

?? canfunc.c

?? LPC2119 CAN中斷及示范
?? C
字號(hào):
/****************************************Copyright (c)**************************************************
**                               廣州周立功單片機(jī)發(fā)展有限公司
**                                     研    究    所
**                                        產(chǎn)品一部 
**                                 http://www.zlgmcu.com
**-----------------------------------------------------------文件信息--------------------------------------------------------------------------------
**	文   件  	名:	CANFUNC.C
** 	版  		本:	v1.0
** 	日		期:	2004年2月23日
**	描		述:	CAN模塊功能操作函數(shù)說(shuō)明文件
********************************************************************************************************/
#define	_CANFUNC_GLOBAL_
#include "INCLUDES.H"
/*
***********************************************************************************************************
**函數(shù)原型	:  	void	HwRstCAN (eCANNUM CanNum)
**參數(shù)說(shuō)明	:  	CanNum		-->>	CAN控制器,值不能大于CAN_MAX_NUM 規(guī)定的值
**返回值		:	無(wú)	
**說(shuō)	明		:	本函數(shù)用于硬件復(fù)位CAN控制器,主要是CAN模塊掉電,用于省電處理
************************************************************************************************************/
void		HwRstCAN(eCANNUM CanNum)
{
	PCONP &= ~((INT32U)0x01 << (13+CanNum));
}
/*
***********************************************************************************************************
**函數(shù)原型	:  	void	HwEnCAN (eCANNUM CanNum)
**參數(shù)說(shuō)明	:  	CanNum		-->>	CAN控制器,值不能大于CAN_MAX_NUM 規(guī)定的值
**返回值		:	無(wú)	
**說(shuō)	明		:	本函數(shù)用于硬件使能CAN控制器
************************************************************************************************************/
void		HwEnCAN(eCANNUM CanNum)
{
	CANAFMR.Bits.AccBP_BIT =1;
	PCONP |= ((INT32U)0x01 << (13+CanNum));
	switch(CanNum)
	{
		
		case	CAN1:
			PINSEL1 &=  ~((INT32U)0x03 << 18);
			PINSEL1 |=  ((INT32U)0x01 << 18);
			break;
		case	CAN2:
			PINSEL1 &=  ~((INT32U)0x0F << 14);
			PINSEL1 |=  ((INT32U)0x05 << 14);
			break;
		/////////////////////////////////////////	
		#if	(CAN_MAX_NUM == 4)
			case	CAN3:
				PINSEL1 &=  ~((INT32U)0x0F << 10);
				PINSEL1 |=  ((INT32U)0x06 << 10);
				break;
			case	CAN4:
				PINSEL1 |=  ((INT32U)0x0F << 24);
				break;
		#endif
		/////////////////////////////////////////
		default:
			break;	
	}
}
/*
***********************************************************************************************************
**函數(shù)原型	:  	INT32U	SoftRstCAN (eCANNUM CanNum)
**參數(shù)說(shuō)明	:  	CanNum		-->>	CAN控制器,值不能大于CAN_MAX_NUM 規(guī)定的值
**返回值		:	=0,表示復(fù)位成功; !=0,復(fù)位不成功;	
**說(shuō)	明		:	本函數(shù)用于軟件復(fù)位CAN控制器
************************************************************************************************************/
INT32U		SoftRstCAN(eCANNUM CanNum)
{
	CANMOD(CanNum).Bits.RM_BIT =1;
	return(!CANMOD(CanNum).Bits.RM_BIT );
}
/*
***********************************************************************************************************
**函數(shù)原型	:  	INT32U	SoftEnCAN (eCANNUM CanNum)
**參數(shù)說(shuō)明	:  	CanNum		-->>	CAN控制器,值不能大于CAN_MAX_NUM 規(guī)定的值
**返回值		:	=0,表示成功使CAN控制器進(jìn)入工作模式; !=0,不成功;	
**說(shuō)	明		:	本函數(shù)用于軟件使能CAN控制器
************************************************************************************************************/
INT32U		SoftEnCAN(eCANNUM CanNum)
{
	CANMOD(CanNum).Bits.RM_BIT =0;
	return(CANMOD(CanNum).Bits.RM_BIT );
}
/*
***********************************************************************************************************
**函數(shù)原型	:  	void	CanSendCmd(eCANNUM CanNum,INT32U Cmd,INT32U TxBuf)
**參數(shù)說(shuō)明	:  	CanNum		-->>	CAN控制器,值不能大于CAN_MAX_NUM 規(guī)定的值
				Cmd			à> 發(fā)送命令字
				TxBuf		à>	選擇發(fā)送緩沖區(qū)
**返回值		:		
**說(shuō)	明		:	本函數(shù)用于發(fā)送命令處理
************************************************************************************************************/
void	CanSendCmd(eCANNUM CanNum,INT32U Cmd,INT32U TxBuf)
{
	uCANCMR Temp;
	Temp.Word =0;
	Temp.Bits.STB1_BIT = TxBuf&0x00000001;
	Temp.Bits.STB2_BIT = (TxBuf&0x00000002)>>1;
	Temp.Bits.STB3_BIT = (TxBuf&0x00000004)>>2;
	switch(Cmd)
	{
		case	1:
			Temp.Bits.AT_BIT =1;					//單次發(fā)送
			Temp.Bits.TR_BIT =1;
			break;
		case	2:
		case	3:
			if(CANMOD(CanNum).Bits.STM_BIT == 0)	//自發(fā)自收
			{
				CANMOD(CanNum).Word =1;
				CANMOD(CanNum).Bits.STM_BIT =1;
				CANMOD(CanNum).Bits.RM_BIT =0;
			}
			Temp.Bits.SRR_BIT =1;
			if(Cmd == 3)							//單次自發(fā)自收
			{
				Temp.Bits.AT_BIT =1;
			}
			break;
		case 	0:
		default:									//正常發(fā)送
			Temp.Bits.TR_BIT =1;
			break;
	}
	CANCMR(CanNum) = Temp;
}
/*
***********************************************************************************************************
**函數(shù)原型	:  	INT32U	WriteCanTxBuf(eCANNUM CanNum,INT32U TxBufNum,
										INT32U TPM,P_stcTxBUF Buf) ;
**參數(shù)說(shuō)明	:  	CanNum		-->>	CAN控制器,值不能大于CAN_MAX_NUM 規(guī)定的值
				TxBufNum		à>	選擇發(fā)送緩沖區(qū)
				TPM			à>	發(fā)送優(yōu)先級(jí)模式
				Buf			à>	發(fā)送到總線的數(shù)據(jù)
**返回值		:	=0;成功將數(shù)據(jù)寫(xiě)入發(fā)送緩沖區(qū)
				!=0;寫(xiě)發(fā)送緩沖區(qū)操作失敗	
**說(shuō)	明		:	本函數(shù)用于向CAN發(fā)送緩沖區(qū)TxBUF寫(xiě)入發(fā)送數(shù)據(jù)
***********************************************************************************************************
*/
INT32U	WriteCanTxBuf(eCANNUM CanNum,INT32U TxBufNum,INT32U TPM,P_stcTxBUF Buf)
{
	INT32U	status=0;
	switch(TxBufNum)
	{

		case	SEND_TX_BUF1:
			//判斷發(fā)送緩沖區(qū)是否被鎖定或者正在發(fā)送信息
			if((0== CANSR(CanNum).Bits.TS1_BIT)&&(0 != CANSR(CanNum).Bits.TBS1_BIT))
			{
				CANTFI1(CanNum)=Buf->TxFrameInfo;	//寫(xiě)入幀信息
				CANTID1(CanNum)=Buf->TxCANID;		//寫(xiě)入幀ID
				CANTDA1(CanNum)=Buf->CANTDA;		//寫(xiě)入前1-4字節(jié)
				CANTDB1(CanNum)=Buf->CANTDB;		//寫(xiě)入后5-8字節(jié)
			}
			else
			{
				status = 0x01;
			}
			break;
		case	SEND_TX_BUF2:
			if((0== CANSR(CanNum).Bits.TS2_BIT)&&(0 !=CANSR(CanNum).Bits.TBS2_BIT))
			{
				CANTFI2(CanNum)=Buf->TxFrameInfo;
				CANTID2(CanNum)=Buf->TxCANID;
				CANTDA3(CanNum)=Buf->CANTDA;
				CANTDB2(CanNum)=Buf->CANTDB;
			}
			else
			{
				status = 0x01;
			}
			break;
		case	SEND_TX_BUF3:
			if((0== CANSR(CanNum).Bits.TS3_BIT)&&(0 != CANSR(CanNum).Bits.TBS3_BIT))
			{
				CANTFI3(CanNum)=Buf->TxFrameInfo;
				CANTID3(CanNum)=Buf->TxCANID;
				CANTDA3(CanNum)=Buf->CANTDA;
				CANTDB3(CanNum)=Buf->CANTDB;
			}
			else
			{
				status = 0x01;
			}
			break;
		default:
			status = 0x01;
			break;
	}
	if(TPM == 1)
	{
		CANMOD(CanNum).Bits.TPM_BIT =1;	//發(fā)送優(yōu)先級(jí)由幀的優(yōu)先級(jí)域決定
	}
	return(status);
}
/*
***********************************************************************************************************
**函數(shù)原型	:  	void	ReadCanRxBuf(eCANNUM CanNum,P_stcRxBUF Buf)
**參數(shù)說(shuō)明	:  	CanNum		-->>	CAN控制器,值不能大于CAN_MAX_NUM 規(guī)定的值
				Buf			à>	接收CAN總線數(shù)據(jù)
**返回值		:	
**說(shuō)	明		:	本函數(shù)用于從CAN控制器RxBuf中讀取數(shù)據(jù)
***********************************************************************************************************
*/
void	ReadCanRxBuf(eCANNUM CanNum,P_stcRxBUF Buf)
{
	Buf->CANRcvFS 	=CANRFS(CanNum);
	Buf->RxCANID 	=CANRID(CanNum);
	Buf->CANRDA	=CANRDA(CanNum);
	Buf->CANRDB	=CANRDB(CanNum);
}
/*
***********************************************************************************************************
**函數(shù)原型	:  	INT32U 	CanEntrySM(CanNum)
**參數(shù)說(shuō)明	:  	CanNum	-->>	CAN控制器,值不能大于CAN_MAX_NUM 規(guī)定的值
**返回值		:	=0;成功進(jìn)入睡眠狀態(tài);
				!=0;不能進(jìn)入睡眠狀態(tài);	
**說(shuō)	明		:	本函數(shù)用于使CAN控制器進(jìn)入休眠模式
***********************************************************************************************************
*/
INT32U	CanEntrySM(eCANNUM	CanNum)
{
	CANMOD(CanNum).Bits.SM_BIT = 1;	
	return(!CANMOD(CanNum).Bits.SM_BIT);
}
/*
***********************************************************************************************************
**函數(shù)原型	:  	INT32U CanQuitSM(eCANNUM	CanNum)
**參數(shù)說(shuō)明	:  	CanNum		-->>	CAN控制器,值不能大于CAN_MAX_NUM 規(guī)定的值
**返回值		:	=0;成功退出睡眠狀態(tài);
				!=0;不能退出睡眠狀態(tài);	
**說(shuō)	明		:	本函數(shù)用于使CAN控制器退出休眠模式
***********************************************************************************************************
*/
INT32U CanQuitSM(eCANNUM	CanNum)	
{
	uCANMod		i;
	i=CANMOD(CanNum);
	CANMOD(CanNum).Bits.RM_BIT=1; 
	CANMOD(CanNum).Bits.SM_BIT = 0;	
	CANMOD(CanNum).Bits.RM_BIT=i.Bits.RM_BIT; 
	return(CANMOD(CanNum).Bits.SM_BIT);
}
/*********************************************************************************************************
**                            End Of File
********************************************************************************************************/

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久免费国产精品| 日韩欧美视频在线| 亚洲激情一二三区| 91国在线观看| 91久久免费观看| av一区二区三区在线| 国产一区二区剧情av在线| 九九国产精品视频| 懂色av一区二区在线播放| 国产一区二区三区精品视频| 韩国成人精品a∨在线观看| 狠狠色丁香婷婷综合| 大尺度一区二区| 色综合久久综合网欧美综合网 | 精品一区二区三区在线观看国产 | 国产激情91久久精品导航 | 91国偷自产一区二区使用方法| 色狠狠色狠狠综合| 国产v综合v亚洲欧| 欧美午夜不卡视频| 久久精品一区二区三区不卡牛牛| 久久精品一区四区| 亚洲午夜私人影院| 国产精品影视网| 91亚洲资源网| 日韩精品中文字幕一区| 一区精品在线播放| 精品亚洲国产成人av制服丝袜| 成人av在线看| 欧美tk丨vk视频| 天天操天天色综合| 色噜噜久久综合| 中文字幕一区二区三区四区不卡 | 午夜精品福利视频网站| 懂色av噜噜一区二区三区av| 欧美一区二区美女| 国产精品久久久一本精品| 国产一区美女在线| 日韩视频国产视频| 午夜精品爽啪视频| 一本久道中文字幕精品亚洲嫩| 国产日本亚洲高清| 国产在线不卡一卡二卡三卡四卡| 欧美视频日韩视频| 亚洲黄色在线视频| 国产成人亚洲综合色影视| 日韩欧美综合一区| 亚洲一级二级三级| 欧美一区二区在线免费观看| 偷拍日韩校园综合在线| 色噜噜狠狠色综合中国| 亚洲女同一区二区| 欧美体内she精视频| 午夜精品视频一区| 精品免费一区二区三区| 日本亚洲天堂网| 久久久美女毛片| 成人手机在线视频| 一区二区在线观看视频| 欧美视频在线播放| 国产一区二区三区高清播放| 中文字幕中文在线不卡住| 欧美亚洲一区二区在线观看| 麻豆精品在线播放| 亚洲欧洲日韩av| 日韩欧美精品三级| 色综合网站在线| 久久91精品久久久久久秒播| 国产精品成人一区二区三区夜夜夜 | 欧美日韩一级片网站| 国产精品夜夜爽| 美日韩黄色大片| 高清在线不卡av| 国产日韩欧美a| 欧美一卡二卡在线| 95精品视频在线| 美女被吸乳得到大胸91| 亚洲欧美偷拍另类a∨色屁股| 欧美电影免费观看完整版| 日本乱码高清不卡字幕| 大桥未久av一区二区三区中文| 美女国产一区二区三区| 日韩经典中文字幕一区| 亚洲人成人一区二区在线观看| 中文字幕不卡一区| 欧美在线观看视频一区二区| 同产精品九九九| 亚洲一区二区三区四区在线观看 | 精品国产一区二区三区久久久蜜月| 99视频有精品| 成人晚上爱看视频| 91浏览器在线视频| 床上的激情91.| 免费成人在线视频观看| 国产精品久久久久久久久免费丝袜| 精品少妇一区二区三区日产乱码| 欧美私人免费视频| 色婷婷综合久久久中文字幕| 国产98色在线|日韩| 丰满亚洲少妇av| 国产成人精品aa毛片| 成人午夜私人影院| 91亚洲大成网污www| 日本精品一区二区三区高清| 欧美午夜不卡视频| 欧美日韩电影在线播放| 欧美日韩精品一二三区| 欧美成人一区二区三区| 久久免费国产精品| 久久视频一区二区| 欧美一区三区四区| 国产精品夫妻自拍| 日本视频一区二区| 粉嫩久久99精品久久久久久夜| 粉嫩绯色av一区二区在线观看| 91精品办公室少妇高潮对白| 日韩欧美一级二级三级| 一区二区三区国产精华| 韩日av一区二区| 91碰在线视频| 精品国产一区二区三区忘忧草 | 欧美激情在线免费观看| 国产精品青草久久| 亚洲亚洲人成综合网络| 麻豆国产欧美日韩综合精品二区| av中文字幕一区| 久久精品综合网| 精久久久久久久久久久| 欧美日韩卡一卡二| 亚洲综合视频在线| 色综合中文字幕国产 | 国产一区二区三区av电影| 欧美色成人综合| 亚洲成av人片www| caoporm超碰国产精品| 国产午夜精品一区二区三区嫩草| 天堂影院一区二区| 欧美顶级少妇做爰| 国产精品区一区二区三区| 丰满亚洲少妇av| 国产精品国产自产拍在线| heyzo一本久久综合| 成人免费视频app| 日韩一区二区在线观看| 亚洲国产精品久久久久秋霞影院| 欧美综合天天夜夜久久| 亚洲国产另类av| 美女视频免费一区| 欧美肥妇free| 国产99久久久精品| 亚洲人成7777| 日韩一区二区三区视频在线| 国产欧美一区二区精品秋霞影院 | 一卡二卡三卡日韩欧美| 欧美一区中文字幕| 久久精品免费观看| 国产欧美日韩三区| 亚洲欧美怡红院| 欧美变态tickle挠乳网站| 91免费视频网址| 九九精品一区二区| 亚洲愉拍自拍另类高清精品| 久久精品免费在线观看| 日韩视频在线一区二区| 欧美性三三影院| 欧美性大战久久久久久久 | 1024国产精品| 1024亚洲合集| 成人欧美一区二区三区视频网页| 26uuuu精品一区二区| 精品国产一区久久| 久久久国产精品不卡| 国产日本欧洲亚洲| 欧美国产1区2区| 亚洲日本免费电影| 亚洲高清在线精品| 日韩经典一区二区| 九九精品一区二区| 国产精品一区三区| 国产91在线观看| 色婷婷综合中文久久一本| 欧美日韩精品久久久| 91精品蜜臀在线一区尤物| 日韩欧美国产系列| 国产精品网曝门| 亚洲国产精品一区二区久久恐怖片| 亚洲小少妇裸体bbw| 美女mm1313爽爽久久久蜜臀| 国产凹凸在线观看一区二区| 在线免费观看一区| 26uuu色噜噜精品一区| 亚洲精品高清视频在线观看| 蜜桃视频免费观看一区| 国产精品99久久久久久久女警| 欧洲国内综合视频| 久久麻豆一区二区| 日韩二区在线观看| 高清成人免费视频| 日韩三级精品电影久久久| 国产精品欧美一区二区三区|