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

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

?? can.c

?? S3C2410上GPRS模塊的驅(qū)動(dòng)源碼,ADS1.2編譯工程,已測(cè)試通過(guò).附文檔.
?? C
字號(hào):
/*!	\file		CAN.c
	\brief		CAN收發(fā)數(shù)據(jù)實(shí)現(xiàn)文件
	\author		丁雷
	\version	0.1

	用戶通過(guò)文件實(shí)現(xiàn)CAN總線的初始化,數(shù)據(jù)的發(fā)送,數(shù)據(jù)的中斷接受。
*/
#include<stdlib.h>
#include<string.h>

#include "CAN.h"
#include "def.h"
#include "2410addr.h"
#include "option.h"
//#include "GUI.h"
#include "2410lib.h"
//#include "lcd.h"
#include "spi.h"
#include "mcp2515.h"
//#include "consol.h"
#include "spi.h"
#include "lcdlib.h"

/*!	\defgroup	CANDAT	CAN總線消息接受存放單元
*/
//@{
char messagebuf[100];	//!<字符串?dāng)?shù)據(jù)緩沖區(qū)
char RxMsgBuf[256];
int  RxMsgBufW;
int  RxMsgBufR;
//@}

/** CAN總線消息結(jié)構(gòu)體初始化申請(qǐng)空間函數(shù) 
*  @param[in] msg CAN總線消息結(jié)構(gòu)體
*/
void can_initMessageStruct(CanMessage* msg)
{
	memset(msg,0,sizeof(CanMessage));
}

void can_initBuf(void)
{
	memset(RxMsgBuf,0,sizeof(RxMsgBuf));
	RxMsgBufW = 0;
	RxMsgBufR = 0;
}

/** 芯片MCP2515申請(qǐng)空閑發(fā)送緩沖器函數(shù) 
*  @param[in] txbuf_n 發(fā)送緩沖器序號(hào)
*/
unsigned char mcp2515_getNextFreeTXBuf(unsigned char *txbuf_n)
{
	unsigned char res, i, ctrlval;
	unsigned char ctrlregs[MCP_N_TXBUFFERS] = { MCP_TXB0CTRL, MCP_TXB1CTRL, MCP_TXB2CTRL };
	
	res = MCP_ALLTXBUSY;
	*txbuf_n = 0x00;
	
	// check all 3 TX-Buffers
	for (i=0; i<MCP_N_TXBUFFERS; i++) {
		ctrlval = mcp2515_readRegister( ctrlregs[i] );
		if ( (ctrlval & MCP_TXB_TXREQ_M) == 0 ) {
			*txbuf_n = ctrlregs[i]+1; // return SIDH-address of Buffer
			res = MCP2515_OK;
			return res; /* ! function exit */
		}
	}
	
	return res;
}


/** CAN總線發(fā)送數(shù)據(jù)函數(shù)
*  @param[in] msg CAN總線消息結(jié)構(gòu)體
*/
unsigned char can_sendMessage(CanMessage* msg)
{
	unsigned char res, txbuf_n;
	int i=0;
	//unsigned char timeout = 0;

	do {
		res = mcp2515_getNextFreeTXBuf(&txbuf_n); // info = addr.
		i++;
	} while (res == MCP_ALLTXBUSY && i<1000);

	
	if (res!=MCP_ALLTXBUSY) {
		mcp2515_write_canMsg( txbuf_n, msg);
		mcp2515_start_transmit( txbuf_n );
		return CAN_OK;
	}
	else {
		return CAN_FAILTX;
	}
}

/** 數(shù)據(jù)發(fā)送函數(shù) 
*  @param[in] value 要發(fā)送的數(shù)據(jù)
*  @param[in] n		要發(fā)送的數(shù)據(jù)的長(zhǎng)度
*/
void CAN_Write(char * value,int n)
{
   CanMessage msg;
   can_initMessageStruct(&msg);
   msg.identifier = CANDEFAULTIDENT;
   msg.extended_identifier = CANDEFAULTIDENTEXT;
   msg.dlc = n;
   msg.rtr = 0;
   strncpy(msg.dta,value,n);
   	
   can_sendMessage(&msg);

}

/** CAN總線讀數(shù)據(jù)函數(shù) 
*/
void CAN_Read()
{
    
    unsigned char stat, res;
	CanMessage msg;
	
	stat = mcp2515_readStatus();
	
	
	if ( stat & MCP_STAT_RX0IF ) {
		// Msg in Buffer 0
		mcp2515_read_canMsg( MCP_RXBUF_0,&msg);
		mcp2515_modifyRegister(MCP_CANINTF, MCP_RX0IF, 0);
		res = CAN_OK;
	}
	else if ( stat & MCP_STAT_RX1IF ) {
		// Msg in Buffer 1
		mcp2515_read_canMsg( MCP_RXBUF_1,&msg);
		mcp2515_modifyRegister(MCP_CANINTF, MCP_RX1IF, 0);
		res = CAN_OK;
	}
	else {
		res = CAN_NOMSG;
	}	             
//    CONSOL_Printf(msg.dta);
//    CONSOL_Printf(" ");  
  
}

/** CAN總線初始化函數(shù) 
*/
void CAN_Init(void)
{
    spi_init();
    mcp2515_Init(CAN_20KBPS);
    rGPGCON&=0xffffff3f;
    rGPGCON|=(1<<7);
    rGPGUP&=0xfff7;
    rGPGDAT|=(1<<3);
	rINTMSK &= ~(BIT_EINT8_23);
	rEINTMASK&=~(1<<11);
}


/** CAN總線中斷響應(yīng)函數(shù) 
*/
void __irq CAN_LISR(void)
{
    int temp;
    
    unsigned char stat, res;
	CanMessage msg;
	
	stat = mcp2515_readStatus();
	
	
	if ( stat & MCP_STAT_RX0IF ) {
		// Msg in Buffer 0
		mcp2515_read_canMsg( MCP_RXBUF_0,&msg);
		mcp2515_modifyRegister(MCP_CANINTF, MCP_RX0IF, 0);
		res = CAN_OK;
	}
	else if ( stat & MCP_STAT_RX1IF ) {
		// Msg in Buffer 1
		mcp2515_read_canMsg( MCP_RXBUF_1,&msg);
		mcp2515_modifyRegister(MCP_CANINTF, MCP_RX1IF, 0);
		res = CAN_OK;
	}
	else {
		res = CAN_NOMSG;
		mcp2515_modifyRegister(MCP_CANINTF, 0xff, 0x00);
	    temp=rEINTPEND;
	    rEINTPEND=temp;
		temp = rSRCPND;
		rSRCPND = temp;
		temp = rINTPND;
		rINTPND = temp;
		
	    rGPGDAT|=(1<<3);
	    return;
	}	     
    strcpy(messagebuf,msg.dta);
    messagebuf[msg.dlc]='\0';
    
 //   CONSOL_Printf(messagebuf);
 //   PrintTextEdit("收到信息->$",RGB(255,255,0),65,150,280,40,1);
	PrintTextEdit(messagebuf,RGB(255,255,0),65,150,280,40,1);
/*	
	for (i=0; i<CAN_MAX_CHAR_IN_MESSAGE; i++)
	{
		if (msg.dta[i] == 0)
		{
			i = CAN_MAX_CHAR_IN_MESSAGE;
		}
		else
		{
			if (RxMsgBufW >= 256)
				RxMsgBufW = 0;
			
			RxMsgBuf[RxMsgBufW] = msg.dta[i];
			RxMsgBufW++;

		}
	}
*/
    
    temp=rEINTPEND;
    rEINTPEND=temp;
	temp = rSRCPND;
	rSRCPND = temp;
	temp = rINTPND;
	rINTPND = temp;
	
    rGPGDAT|=(1<<3);
 
}

int ReadForRxMsgBuf(char *msg)
{
	int i = 0;
	
	for(i=0; ;i++)
	{
	
		if (RxMsgBufR >= 256)
			RxMsgBufR = 0;
		
		if (RxMsgBufR < RxMsgBufW)
		{
			msg[i] = RxMsgBuf[RxMsgBufR];
			RxMsgBufR++;
		}
		else
		{
			if (i > 0)
				return TRUE;
			return FALSE;
		}		
	}
	return FALSE;
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产日韩三级在线| 国产精品国产成人国产三级| 福利91精品一区二区三区| 亚洲人吸女人奶水| 精品国产一区二区三区不卡| 色哟哟一区二区在线观看| 久久99热这里只有精品| 一级日本不卡的影视| 久久久99免费| 欧美日韩国产小视频| 成人黄色在线视频| 国内不卡的二区三区中文字幕 | 色狠狠av一区二区三区| 美女视频免费一区| 亚洲成av人片www| 综合久久久久综合| 久久久99精品免费观看不卡| 欧美一区二区三区影视| 欧洲一区在线电影| 色综合天天综合在线视频| 国产精品亚洲综合一区在线观看| 视频在线观看一区二区三区| 亚洲欧美日本韩国| 亚洲国产精品99久久久久久久久| 日韩欧美成人午夜| 7777精品伊人久久久大香线蕉 | 国内久久精品视频| 男人的天堂久久精品| 亚洲成va人在线观看| 一区二区国产视频| 亚洲乱码国产乱码精品精小说 | 日韩中文字幕不卡| 亚洲成人中文在线| 亚洲自拍都市欧美小说| 亚洲日本青草视频在线怡红院 | 天堂影院一区二区| 亚洲午夜久久久久| 亚洲午夜三级在线| 亚洲成人你懂的| 亚洲成人精品一区二区| 亚洲第一电影网| 爽好久久久欧美精品| 午夜不卡av免费| 日本视频中文字幕一区二区三区| 五月天丁香久久| 免费xxxx性欧美18vr| 美女网站在线免费欧美精品| 久久99久国产精品黄毛片色诱| 美女视频免费一区| 国内精品免费在线观看| 国产一区二区女| 丁香桃色午夜亚洲一区二区三区| 国产成人午夜精品影院观看视频 | 欧美一区三区二区| 欧美一区二区高清| 精品国产一区二区在线观看| 久久久91精品国产一区二区精品| 中文字幕乱码亚洲精品一区| 亚洲欧美中日韩| 一区二区三区四区激情| 婷婷综合在线观看| 精品一区二区在线看| 成人免费黄色在线| 日本精品一区二区三区高清 | 久久美女艺术照精彩视频福利播放 | 久久精品国产秦先生| 国产伦精品一区二区三区视频青涩 | 色噜噜狠狠成人中文综合| 欧美无砖砖区免费| 日韩一区二区三区高清免费看看| 欧美精品一区二区三区四区| 欧美精彩视频一区二区三区| 亚洲免费在线电影| 日韩在线卡一卡二| 成人午夜av电影| 欧洲激情一区二区| 精品少妇一区二区| 亚洲欧美一区二区在线观看| 丝袜亚洲精品中文字幕一区| 国产乱子轮精品视频| 色婷婷av久久久久久久| 日韩一级片网址| 国产精品久久久99| 日韩二区三区四区| 成人一区在线看| 欧美日产国产精品| 国产精品乱码人人做人人爱| 午夜一区二区三区视频| 成人免费视频视频| 欧美日韩国产高清一区| 日本一区二区免费在线| 亚洲成人免费在线观看| 成人免费视频视频| 欧美一区欧美二区| 亚洲欧美色图小说| 九色|91porny| 欧美日韩一区精品| 国产日韩欧美不卡在线| 日韩精品欧美成人高清一区二区| 国产大陆a不卡| 欧美高清dvd| 日韩美女啊v在线免费观看| 久久爱另类一区二区小说| 91福利区一区二区三区| 中文无字幕一区二区三区| 日韩成人免费电影| 91丝袜国产在线播放| 精品久久久影院| 亚洲动漫第一页| 91在线精品一区二区三区| 欧美变态口味重另类| 天堂va蜜桃一区二区三区漫画版| 99re这里只有精品视频首页| 久久久九九九九| 国内不卡的二区三区中文字幕 | 亚洲欧美偷拍三级| 国产成人自拍高清视频在线免费播放| 欧美日韩中字一区| 一区二区三区在线观看国产| 国产mv日韩mv欧美| 国产日韩欧美制服另类| 激情图片小说一区| 精品va天堂亚洲国产| 日本欧美大码aⅴ在线播放| 欧美日韩一区二区三区在线| 亚洲免费色视频| 91美女片黄在线观看91美女| 国产精品久久久久久久第一福利| 国产精品小仙女| 国产亚洲福利社区一区| 国产精品亚洲一区二区三区在线 | 欧美国产日韩精品免费观看| 久久精品国产精品亚洲精品| 91精品国产综合久久小美女| 石原莉奈在线亚洲三区| 在线观看国产精品网站| 一区二区三区色| 在线看不卡av| 亚洲成av人片在www色猫咪| 欧美三级乱人伦电影| 亚洲成人一二三| 欧美日韩久久不卡| 日本大胆欧美人术艺术动态| 欧美一区二区免费观在线| 麻豆久久久久久| 精品成人免费观看| 国产精品99久久久久久有的能看| 久久久天堂av| jiyouzz国产精品久久| 亚洲婷婷国产精品电影人久久| 99久久婷婷国产| 亚洲最新视频在线观看| 精品视频在线看| 美国三级日本三级久久99| 欧美成人一区二区三区| 国内精品久久久久影院色| 久久精品欧美一区二区三区不卡 | 午夜在线电影亚洲一区| 日韩精品一区二区三区老鸭窝| 韩国av一区二区三区四区| 久久影院电视剧免费观看| 国产成人午夜精品5599| 中文字幕一区av| 欧美蜜桃一区二区三区| 美女看a上一区| 国产欧美一区二区精品忘忧草| 成人国产精品免费观看视频| 最新日韩av在线| 欧美日韩国产高清一区二区 | 99综合电影在线视频| 亚洲精品国产一区二区三区四区在线| 在线观看国产精品网站| 久久精品国产免费看久久精品| 国产精品免费视频观看| 欧美日韩黄色一区二区| 国产在线看一区| 亚洲欧美激情视频在线观看一区二区三区 | 美女性感视频久久| 国产精品成人一区二区三区夜夜夜| 色天使久久综合网天天| 免费高清在线一区| 国产精品久久久久久久久久免费看 | 精一区二区三区| 亚洲天堂2014| 日韩久久精品一区| 色综合天天视频在线观看| 午夜精品福利一区二区蜜股av| 久久九九99视频| 欧美日韩国产一区| 成人午夜精品在线| 美女性感视频久久| 亚洲资源在线观看| 国产日产欧美一区| 日韩欧美在线1卡| 色婷婷综合久久久| 国产999精品久久| 香蕉加勒比综合久久| 成人欧美一区二区三区黑人麻豆 | 麻豆精品久久精品色综合| 成人免费一区二区三区视频|