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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? can.c

?? CAN通訊底層節點
?? C
字號:
/*------------------------------------------------------------------------------
;CAN總線大壩監測系統
;底層節點
;文件名稱: can.c
;函數功能:CAN總線通信
;MCU支持:  C8051F040
;上海富方軟件合肥自動化分公司
;-----------------------------------------------------------------------------*/

#include "c8051F040.h"
#include "can.h"
#include "canreg.h"

#define CAN_ID 2



////////////////////////////////////////////////////////////////////////////////
// 清零所有消息對象
////////////////////////////////////////////////////////////////////////////////
void Clr_All_Msg_Obj (void){	
	unsigned char i;
   	SFRPAGE = CAN0_PAGE;

	CAN0ADR = IF1CMDMSK;       
	CAN0DATL = 0xF3;      
	// 寫消息對象,Mask,Arb,Control改變
    CAN0ADR = IF1MSK1;     
    CAN0DAT = 0xFFFF;
    CAN0DAT = 0x7FFF;
	// Xtd不用,Dir濾波,所有ID或IDE位濾波
	CAN0DAT = 0x0000;
	CAN0DAT = 0x0000;     
    // 消息對象不可用,默認ID為0
	for (i = 1;i < 33;i++)
      {
		CAN0ADR = IF1CMDRQST;     
		CAN0DATL = i;
		// 應用到32個消息對象
      }   
}



////////////////////////////////////////////////////////////////////////////////
// 消息對象發送配置
////////////////////////////////////////////////////////////////////////////////
void Init_Msg_Obj_TX (unsigned char msg_num,unsigned int id){
	unsigned int temp_id;
  	SFRPAGE = CAN0_PAGE;

	CAN0ADR = IF1CMDMSK;
	CAN0DAT = 0x00b3; 
	// WR/RD=1,Mask=0,Arb=1,Control=1,ClrIntPnd=0,TxRqst=0,DataA=1,DataB=1
	CAN0ADR = IF1ARB1;            
	CAN0DAT = 0x0000;  
	// ID15-0=0
	temp_id = id<<2;     
	// 標準id為ID28-ID18,則左移2位
	temp_id &=0x1ffc;
	temp_id |=0xa000;
	// IF1ARB2=101(id)00b,MsgVal=1,Xtd=0,標準模式,Dir=1,發送
	CAN0DAT = temp_id; 
	// 地址自增指向IF1ARB2
	CAN0DAT = 0x1088;
	// IF1MSGC=0x1088,NewDat=0,MsgLst=0,IntPnd=0,UMask=1,TxIE=0,RxIE=0,
	// RmtEn=0,TxRqst=0,EoB=1,DLC3-0=1000
	// 濾波使能,發送后IntPnd不變,遠程禁止,長度為8的單塊
	CAN0ADR = IF1CMDRQST;         
	CAN0DAT = msg_num;   
	// 應用到msg_num號消息
}



////////////////////////////////////////////////////////////////////////////////
// 消息對象接收配置
////////////////////////////////////////////////////////////////////////////////
void Init_Msg_Obj_RX (unsigned char msg_num,unsigned int id){
	unsigned int temp_id;
   	SFRPAGE = CAN0_PAGE;

	CAN0ADR = IF2CMDMSK; 
	CAN0DAT = 0x00bb;             
	// WR/RD=1,Mask=0,Arb=1,Control=1,ClrIntPnd=1,TxRqst=0,DataA=1,DataB=1
	CAN0ADR = IF2ARB1;           
	CAN0DAT = 0x0000; 
	temp_id = id<<2;
	temp_id &= 0x1ffc;
	temp_id |=0x8000;
	CAN0DAT = temp_id; 
	// IF1ARB2=100(id)00b,MsgVal=1,Xtd=0,標準模式,Dir=0,接收
	CAN0DAT = 0x1488;
	// NewDat=0,MsgLst=0,IntPnd=0,UMask=1,TxIE=0,RxIE=1,RmtEn=0,TxRqst=0
    // EoB=1,DLC3-0=1000,不是中斷源,接收后IntPnd置1
	CAN0ADR = IF2CMDRQST;        
	CAN0DATL = msg_num;           
}



////////////////////////////////////////////////////////////////////////////////
// CAN發送數據動作
////////////////////////////////////////////////////////////////////////////////
void Can_Trans_Data (unsigned char msg_num){	
    unsigned char num;
   	SFRPAGE = CAN0_PAGE;
	
	CAN0ADR = IF1CMDMSK;          
	CAN0DAT = 0x0087;             
	// WR/RD=1,Mask=0,Arb=0,Control=0,ClrIntPnd=0,TxRqst=1,DataA=1,DataB=1
	CAN0ADR = IF1DATA1;           
	// 將8字節數據寫入IF1DATA1
	for(num = 0;num < 8;num++){
		CAN0DATH = Can_sdata[num+1];
		CAN0DATL = Can_sdata[num];
		num++;
	}

    CAN0ADR = IF1CMDRQST;         
	CAN0DATL = msg_num;
	// 指向消息號 
}



////////////////////////////////////////////////////////////////////////////////
// CAN接收數據動作
////////////////////////////////////////////////////////////////////////////////
void Can_Rec_Data (unsigned char msg_num){
    unsigned char num;
   	SFRPAGE = CAN0_PAGE;

	CAN0ADR = IF2CMDMSK;       	
	CAN0DAT = 0x007f;          
	// WR/RD=0,Mask=1,Arb=1,Control=1,ClrIntPnd=1,NewDat=1,DataA=1,DataB=1
	CAN0ADR = IF2CMDRQST;      	
	CAN0DATL = msg_num;
	// 指向消息號    	   
	CAN0ADR = IF2DATA1;  

	for(num=0;num<8;num++){
	    Can_rdata[num+1] = CAN0DATH;
		Can_rdata[num] = CAN0DATL;
		num++;
	}

}



////////////////////////////////////////////////////////////////////////////////
// 主節點消息對象分別初始化,設置波特率,開啟中斷,并且啟動CAN
////////////////////////////////////////////////////////////////////////////////
void Can_Msg_Init (void){
	SFRPAGE = CAN0_PAGE;

	CAN0CN = 0X01;
	// 初始化配置時將CAN掛起
	Clr_All_Msg_Obj();

	Init_Msg_Obj_RX(CAN_ID,CAN_ID);
	Init_Msg_Obj_RX(31,31);
	// 接收ID號
    Init_Msg_Obj_TX(32,32);
	// 發送ID號

	EIE2 |= 0x20;
	// 開啟CAN中斷
	SFRPAGE = CAN0_PAGE;

	CAN0CN |= 0X40;
	// CAN波特率配置可訪問,
	CAN0ADR = BITREG;
	CAN0DAT = 0x7FFF;

	CAN0CN = 0x02;	
	// 自動重發開啟,狀態中斷禁止,IE=1,CAN模塊中斷開啟,Init清零.結束初始化操作,CAN控制器進入正常工作
}



////////////////////////////////////////////////////////////////////////////////
// CAN向上層回傳數據
////////////////////////////////////////////////////////////////////////////////
void Can_Tx_Back(unsigned char Info_Data[6]){
        unsigned char i;

        Can_sdata[0] = Can_rdata[1];
		Can_sdata[1] = Can_rdata[2];

        for(i=0; i<6 ;i++){
			Can_sdata[i+2] = Info_Data[i];
		}

   		Can_Trans_Data(0x20);
}



////////////////////////////////////////////////////////////////////////////////
// CAN中斷
////////////////////////////////////////////////////////////////////////////////
void CAN_ISR (void) interrupt 19 {
	SFRPAGE_SAVE = SFRPAGE;  
	SFRPAGE = CAN0_PAGE;

	/* 成功接收報文 */
	if ( CAN0STA & 0x10 ){
		CAN0STA &= 0xef;
	   
		CAN0ADR = INTPEND2;
		/* 廣播 */
		if( CAN0DAT & 0x4000 )
	   		Can_Rec_Data(31);
		/* 非廣播 */
	    else
			Can_Rec_Data(CAN_ID);

		Rec_From_CAN = 1;
	    // 標志成功收到下層信息
	} 

	SFRPAGE = SFRPAGE_SAVE;
}
		

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美日韩人成在线播放| 国产精品香蕉一区二区三区| 蜜桃91丨九色丨蝌蚪91桃色| 粉嫩嫩av羞羞动漫久久久| av在线综合网| 欧美变态tickle挠乳网站| 亚洲人精品一区| 国产精品综合一区二区三区| 欧美日韩国产小视频在线观看| 国产无一区二区| 日韩国产在线观看一区| 91小宝寻花一区二区三区| 久久尤物电影视频在线观看| 午夜伦理一区二区| proumb性欧美在线观看| 26uuu精品一区二区| 午夜欧美视频在线观看| 在线视频亚洲一区| 最新久久zyz资源站| 国产盗摄视频一区二区三区| 日韩午夜三级在线| 日韩在线卡一卡二| 欧美性色综合网| 亚洲一区在线观看免费观看电影高清 | 在线一区二区三区| 亚洲欧洲成人自拍| 成人黄色在线看| 国产丝袜欧美中文另类| 国产精选一区二区三区| www国产亚洲精品久久麻豆| 久久se精品一区二区| 欧美一级片在线| 日本中文字幕一区二区视频| 欧美肥妇free| 免费美女久久99| 日韩欧美aaaaaa| 国产精品自拍在线| 国产欧美1区2区3区| 国产酒店精品激情| 国产精品久久久久久久第一福利 | 亚洲一二三四久久| 国产色综合久久| 激情久久五月天| 久久精品亚洲一区二区三区浴池| 国产麻豆精品久久一二三| 精品电影一区二区三区| 国产成人综合在线播放| 欧美激情综合网| 色综合久久久久| 亚洲成a人v欧美综合天堂下载| 欧美在线综合视频| 日日摸夜夜添夜夜添精品视频 | 99re亚洲国产精品| 亚洲日本丝袜连裤袜办公室| 欧美自拍丝袜亚洲| 蜜桃av噜噜一区| 国产欧美日韩亚州综合| 94色蜜桃网一区二区三区| 亚洲电影在线播放| 精品久久久久久久久久久久久久久 | 亚洲一区二区影院| 日韩欧美视频一区| 成人免费av在线| 一区二区三区中文免费| 51精品国自产在线| 成人在线综合网站| 午夜伊人狠狠久久| 久久久久久97三级| 色噜噜夜夜夜综合网| 日韩经典中文字幕一区| 国产精品三级视频| 欧美疯狂做受xxxx富婆| 国产一区二区三区四区五区入口| 亚洲欧洲精品一区二区三区| 5月丁香婷婷综合| 国产成人综合亚洲网站| 亚洲一区在线看| 国产亚洲人成网站| 欧美日韩成人在线| 成人午夜视频在线观看| 日韩一区精品字幕| 国产精品美女www爽爽爽| 欧美福利一区二区| 91香蕉视频黄| 国产成人午夜片在线观看高清观看| 亚洲免费视频成人| 国产色一区二区| 精品视频1区2区3区| 成人午夜伦理影院| 美女在线一区二区| 亚洲一区中文日韩| 亚洲欧美怡红院| 精品盗摄一区二区三区| 欧美日韩一区二区在线视频| 成人丝袜18视频在线观看| 免费观看成人鲁鲁鲁鲁鲁视频| 综合电影一区二区三区 | 国产精品国产三级国产普通话蜜臀| 欧美午夜精品免费| 91丝袜国产在线播放| 国产精品一区二区三区四区| 日本午夜一区二区| 亚洲成人精品影院| 一区二区三区欧美激情| 国产精品高潮呻吟| 中文字幕乱码亚洲精品一区| xfplay精品久久| 精品国产免费视频| 91精品久久久久久蜜臀| 欧美日韩国产精选| 在线播放中文字幕一区| 欧美色男人天堂| 欧美三级日韩三级| 欧美探花视频资源| 欧美日韩一区不卡| 欧美久久一区二区| 欧美一区二区女人| 日韩三级免费观看| 欧美大片在线观看一区| 精品国产一区二区三区久久久蜜月 | 国产亚洲精品7777| 久久精品人人爽人人爽| 欧美激情自拍偷拍| 国产精品不卡在线| 亚洲欧美偷拍卡通变态| 中文字幕字幕中文在线中不卡视频| 中文字幕高清不卡| 亚洲天堂网中文字| 一区二区在线免费| 亚洲第一狼人社区| 美日韩一级片在线观看| 精品一区二区三区av| 国产乱码一区二区三区| 国产999精品久久久久久绿帽| 国产suv精品一区二区三区| 不卡电影一区二区三区| 色噜噜狠狠色综合中国| 欧美丰满一区二区免费视频 | 91麻豆精品秘密| 欧美午夜片在线观看| 日韩欧美你懂的| 亚洲国产精品激情在线观看| 亚洲欧美日韩一区| 美女一区二区三区| 不卡av电影在线播放| 欧美综合色免费| 久久品道一品道久久精品| 亚洲欧美日韩国产成人精品影院| 午夜在线电影亚洲一区| 国产馆精品极品| 在线精品国精品国产尤物884a| 日韩一级黄色大片| 国产精品成人在线观看| 蜜臀av性久久久久蜜臀av麻豆 | 在线观看国产精品网站| 日韩视频一区在线观看| 国产精品第一页第二页第三页| 亚洲va欧美va天堂v国产综合| 精品亚洲国产成人av制服丝袜| 色综合中文字幕国产| 欧美一级专区免费大片| 亚洲日韩欧美一区二区在线| 捆绑调教一区二区三区| 91黄色免费看| 国产精品污www在线观看| 日本女优在线视频一区二区| 99re热这里只有精品免费视频| 日韩一级大片在线| aaa国产一区| 日韩欧美一二三四区| 一区二区三区在线免费播放| 国产麻豆日韩欧美久久| 欧美精品vⅰdeose4hd| 中文字幕日韩av资源站| 国产一区二区三区久久悠悠色av| 欧美日韩一区在线观看| 亚洲视频1区2区| 国产成人av福利| 久久综合色一综合色88| 日韩制服丝袜av| 欧美精品在线观看一区二区| 日韩毛片精品高清免费| 成人午夜私人影院| 久久久久国产免费免费| 蜜桃av噜噜一区| 91精品久久久久久蜜臀| 亚洲综合免费观看高清完整版在线| 成人午夜又粗又硬又大| 国产三区在线成人av| 激情综合色综合久久| 日韩欧美国产综合在线一区二区三区 | 91精品欧美福利在线观看| 亚洲精品欧美综合四区| 99国产一区二区三精品乱码| 中文字幕电影一区| 成人美女视频在线看| 中文幕一区二区三区久久蜜桃| 国产老女人精品毛片久久| 久久久噜噜噜久久中文字幕色伊伊 | 色呦呦网站一区|