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

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

?? mbcommon.c

?? UCOSII的移植試驗 3.5_Modbus RTU 主從通訊實驗
?? C
字號:
/****************************************Copyright (c)**************************************************
**                                  廣州致遠電子有限公司
**
**                                 http://www.21cm.com.cn
**
**
**--------------File Info-------------------------------------------------------------------------------
** File name:			MBCommon.c
** Last modified Date:  2005-01-11
** Last Version:		1.0
** Descriptions:		
**
**------------------------------------------------------------------------------------------------------
** Created by:			ZhouLishan
** Created date:		2005-01-11
** Version:				1.0
** Descriptions:		
**
**------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Descriptions:
**
********************************************************************************************************/

#include "config.h"


PDU_HANDLE 				PDUData;
volatile ADU_CONTROL 	ADUData;

#ifdef UCOSII
extern	OS_EVENT *mb_handle_event_ptr;
#endif

extern uint16 Modbus_CRC16(uint8 *Buff_addr,uint16 len);

//********************************************************************************************************
// 函數名稱:StartCountT15
// 輸入參數:無
// 輸出參數:無
// 功能描述:使能T1.5計數。T1.5的時間值為UART傳輸1.5個字符的時間。
//			 注意:該函數只是使能計時,不允許在函數中產生任何延時。
//			       如果T1.5時間結束執行T15EndHandle函數。
//********************************************************************************************************
extern void StartCountT15(void); 

//********************************************************************************************************
// 函數名稱:StartCountT35
// 輸入參數:無
// 輸出參數:無
// 功能描述:使能T3.5計數。T3.5的時間值為UART傳輸3.5個字符的時間。
//			 注意:該函數只是使能計時,不允許在函數中產生任何延時。
//			       如果T3.5時間結束執行T35EndHandle函數。
//********************************************************************************************************
extern void StartCountT35(void);


volatile uint32 g_10mS_count;
volatile uint8 	g_TimeEnd;				// 應答超時
//******************************************************************************************
// 函數名稱:Get_10mS
// 輸入參數:無
// 輸出參數:10mS計數寄存器
// 功能描述:獲取10mS計數值,該值每10毫秒加1
//******************************************************************************************
void Waite10mS(uint32 time)
{
	g_TimeEnd = FALSE;
	g_10mS_count=time;
}



//*****************************************************************************
// 函數名稱:OverTimeHandle
// 輸入參數:無
// 輸出參數:無
// 功能描述:
//*****************************************************************************
void Time10mSHandle(void)
{
	if(g_10mS_count==0)	return; // g_10mS_count,值為0表示沒有計數事件,直接返回
	g_10mS_count--;				// 計數減1,直接到0為直
	if(g_10mS_count==0)
	{	g_TimeEnd = TRUE;
	#ifdef UCOSII
		OSSemPost(mb_handle_event_ptr);				// 發報信號量,使MODBUS服務任務處理傳輸
	#endif
	}
}

//********************************************************************************************************
// 函數名稱:T15EndHandle
// 輸入參數:無
// 輸出參數:無
// 功能描述:T1.5超時處理
//********************************************************************************************************
void T15EndHandle(void)
{
	uint16 RedundancyCheck;
	if(ADUData.EndT15)
		return;
	ADUData.EndT15 = TRUE;		// T1.5時間結束	

	if((*ADUData.ADUBuffPtr==BROADCAST_ADDRESS)||		// 驗證地址是否有效
	   (*ADUData.ADUBuffPtr==ADUData.Address))
	{
		RedundancyCheck = *(ADUData.ADUBuffPtr+ADUData.ADULength-2)|
								  (*(ADUData.ADUBuffPtr+ADUData.ADULength-1)<<8);
		if(RedundancyCheck == Modbus_CRC16(ADUData.ADUBuffPtr,ADUData.ADULength-2))	// CRC校驗
		{
			ADUData.FrameOK = TRUE;
			return;
		}
	}
	ADUData.FrameOK = FALSE;
	
}

//********************************************************************************************************
// 函數名稱:T35EndHandle
// 輸入參數:無
// 輸出參數:無
// 功能描述:T3.5結束處理
//********************************************************************************************************
void T35EndHandle(void)
{

	if(ADUData.FrameOK)
	{
		PDUData.PDUBuffPtr = ADUData.ADUBuffPtr+1;
		PDUData.PDULength = ADUData.ADULength-3;
		PDUData.FunctionCode = *PDUData.PDUBuffPtr; // 保存功能代碼
		PDUData.FrameOK=TRUE;
	}
	else
	{
		PDUData.FrameOK=FALSE;
	}
   	ADUData.EndT15 = FALSE;		// 允許收到字符
	ADUData.ADULength = 0;
#ifdef UCOSII
	OSSemPost(mb_handle_event_ptr);				// 發報信號量,使MODBUS服務任務處理傳輸
#endif
}

 
//********************************************************************************************************
// 函數名稱:ReceOneChar
// 輸入參數:ReceCharacter
// 輸出參數:無
// 功能描述:接收一個字符處理
//           要求:接收到一個字符后立即傳入該函數處理。
//********************************************************************************************************
void ReceOneChar(uint8 ReceCharacter)
{

	if(ADUData.EndT15==TRUE)
	{	StartCountT35();			// 起動T3.5計時
		return;
	}
	ADUData.FrameOK = FALSE;
	StartCountT15();			// 起動T1.5計時
	StartCountT35();			// 起動T3.5計時

   	*(ADUData.ADUBuffPtr + ADUData.ADULength) = ReceCharacter;
	ADUData.ADULength++; 
}

//********************************************************************************************************
// 函數名稱:PutCharInPUD
// 輸入參數:ch,寫入的字符
//			 EndChar,
// 輸出參數:無
// 功能描述:接收一個字符處理
//           要求:接收到一個字符后立即傳入該函數處理。
//********************************************************************************************************
uint8 PutDataInPUD(uint8 *CharPtr,uint16 Length)
{
	uint16 i;
	if(Length<=MAX_PDU_DATA_LENGTH)
	{
		for(i=0;i<Length;i++)
			*(PDUData.PDUBuffPtr+i)=*(CharPtr+i);
		PDUData.PDULength = Length ;
		PDUData.FrameOK = TRUE;
		return TRUE;
	}
	else
		return FALSE;
}


/*********************************************************************************************************
**                            OSModbusServe MODBUS服務任務
********************************************************************************************************/
#ifdef UCOSII
	void OSModbusServe	(void *pdata)
{	pdata = pdata;
	while (1)
	{	IdleModbus();
	}
}   
#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美xxxxxxxx| 国产真实乱对白精彩久久| 久久婷婷色综合| 色域天天综合网| 国产在线视频不卡二| 亚洲免费在线观看| 久久蜜臀中文字幕| 欧美日韩1区2区| 色婷婷综合久久久久中文一区二区| 国产一区二区三区四区五区美女 | 在线免费观看日本一区| 一区二区三区精品视频| 欧美裸体一区二区三区| 狠狠色伊人亚洲综合成人| 中文字幕精品综合| 色拍拍在线精品视频8848| 日韩va欧美va亚洲va久久| 久久免费看少妇高潮| 99精品1区2区| 日韩成人午夜精品| 国产亚洲欧美在线| 色综合久久综合| 久久99蜜桃精品| 国产精品久久看| 欧美日韩精品一区二区三区蜜桃| 久久99精品久久久久久动态图| 欧美激情一区不卡| 精品视频1区2区| 国产一区二区在线看| 亚洲欧美日韩综合aⅴ视频| 91精品午夜视频| 波多野结衣一区二区三区| 亚洲大片一区二区三区| 久久久99精品久久| 欧美日韩免费高清一区色橹橹 | 免费的国产精品| 亚洲在线视频免费观看| 久久精品久久综合| 亚洲天堂中文字幕| 日韩精品一区二区三区在线观看 | 91久久精品午夜一区二区| 捆绑调教美女网站视频一区| 国产精品欧美一区二区三区| 欧美日韩www| 99在线热播精品免费| 日本麻豆一区二区三区视频| 国产精品天天看| 欧美老肥妇做.爰bbww| heyzo一本久久综合| 日韩不卡一二三区| 亚洲乱码国产乱码精品精98午夜| 欧美不卡一区二区三区四区| 91精品1区2区| 风间由美一区二区三区在线观看 | 91在线观看污| 国产一区不卡精品| 日韩av在线发布| 亚洲精选一二三| 国产午夜精品一区二区| 欧美日本一道本在线视频| 成人精品一区二区三区四区| 日韩av网站免费在线| 一区二区三区四区精品在线视频| 欧美v亚洲v综合ⅴ国产v| 欧美区视频在线观看| 91女人视频在线观看| 国产98色在线|日韩| 久久狠狠亚洲综合| 午夜欧美2019年伦理| 亚洲欧美日韩一区| 国产视频一区二区三区在线观看| 91精品国产手机| 欧美性淫爽ww久久久久无| 不卡的av电影在线观看| 毛片一区二区三区| 天堂久久久久va久久久久| 一区二区三区.www| 亚洲欧美一区二区三区极速播放 | 久久综合国产精品| 7777精品伊人久久久大香线蕉超级流畅 | 婷婷成人综合网| 夜夜嗨av一区二区三区网页| 国产毛片精品国产一区二区三区| 欧美精品一区二区高清在线观看| 国产在线国偷精品免费看| 日韩福利视频网| 亚洲最新视频在线观看| 亚洲欧美日韩电影| 国产精品久久久久毛片软件| 国产偷国产偷亚洲高清人白洁| 精品免费日韩av| 精品少妇一区二区三区免费观看 | 日韩欧美中文一区二区| 欧美高清视频一二三区 | 91麻豆精品视频| av在线综合网| a美女胸又www黄视频久久| 成人免费视频免费观看| 成人a区在线观看| 成人不卡免费av| a4yy欧美一区二区三区| 99国产精品久久久久| 91麻豆福利精品推荐| 色天天综合色天天久久| 日本韩国一区二区| 欧美午夜精品理论片a级按摩| 在线观看视频一区二区欧美日韩| 91福利社在线观看| 在线观看视频欧美| 欧美日韩精品一区二区在线播放| 欧美色图激情小说| 欧美放荡的少妇| 欧美va亚洲va| 精品国产伦理网| av资源站一区| 亚洲精品一线二线三线无人区| 国内精品写真在线观看| 久久久精品tv| 黄页视频在线91| 欧美—级在线免费片| 欧美日韩精品一区二区在线播放| 国产精品久久久久桃色tv| 成人高清视频免费观看| 日韩国产在线观看| 中文字幕中文字幕一区二区| 色悠悠久久综合| 亚洲综合一区二区三区| 国产午夜一区二区三区| 成人午夜私人影院| 日韩中文字幕亚洲一区二区va在线| 激情综合色播五月| 91精品办公室少妇高潮对白| 夜夜揉揉日日人人青青一国产精品| 欧美一卡二卡在线| 福利电影一区二区| 免费观看在线综合色| 亚洲高清不卡在线观看| 国产精品国产三级国产普通话三级| 日韩一区二区三区免费看| 欧美日韩一级黄| 欧美午夜精品久久久久久孕妇| 99久久精品免费看| jizz一区二区| 白白色亚洲国产精品| 高清av一区二区| 国产伦精品一区二区三区视频青涩| 免费成人在线网站| 久久99国内精品| 韩国三级电影一区二区| 亚洲欧美另类久久久精品2019| 国产精品69毛片高清亚洲| 国产一区亚洲一区| 丁香另类激情小说| 91影视在线播放| 欧美日韩国产一级片| 欧美欧美欧美欧美| 欧美一区二区三区成人| 久久综合色婷婷| 《视频一区视频二区| 亚洲va国产va欧美va观看| 亚洲免费观看高清完整版在线观看熊 | 精品国产91九色蝌蚪| 久久青草国产手机看片福利盒子| 久久久久高清精品| 国产精品区一区二区三区| 亚洲综合偷拍欧美一区色| 视频一区视频二区在线观看| 美日韩黄色大片| 成人免费视频视频在线观看免费 | 国产欧美日韩精品一区| 中文字幕一区二区三区色视频 | 成人av午夜影院| 欧美日本乱大交xxxxx| 日韩欧美国产不卡| 亚洲欧美日韩人成在线播放| 日韩高清在线不卡| heyzo一本久久综合| 99国产精品国产精品毛片| 欧美日韩成人综合天天影院| wwwwww.欧美系列| 亚洲日本一区二区三区| 久久丁香综合五月国产三级网站| 成人午夜大片免费观看| 日韩欧美一级二级三级久久久| 国产精品素人视频| 日本亚洲天堂网| 在线区一区二视频| 亚洲婷婷国产精品电影人久久| 美女网站色91| 欧美乱妇15p| 亚洲高清三级视频| 成人免费电影视频| 日韩美女视频在线| 日韩电影在线一区二区三区| 在线观看亚洲精品视频| 国产精品高潮久久久久无| 国产一区二区三区在线观看免费视频| 欧美在线一二三| 有码一区二区三区| 一本一本大道香蕉久在线精品|