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

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

?? mbcommon.c

?? 周立功Magic2410開發板uCOS-II基礎實驗的ModBus主從通信源代碼
?? 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一区二区三区免费野_久草精品视频
亚洲男同性恋视频| 日韩国产欧美在线观看| 91亚洲精品久久久蜜桃网站 | 717成人午夜免费福利电影| 亚洲一区在线视频观看| 欧美日韩日日骚| 蜜桃视频一区二区三区| 久久综合色综合88| 不卡一区二区三区四区| 一区二区三区在线观看动漫| 欧美精品自拍偷拍动漫精品| 免费不卡在线观看| 久久久不卡网国产精品一区| 不卡区在线中文字幕| 亚洲国产一区二区三区青草影视| 欧美乱妇23p| 国产一区二区女| 日韩理论在线观看| 欧美日韩国产一级片| 精品一二线国产| 国产精品久久久久久福利一牛影视 | 开心九九激情九九欧美日韩精美视频电影 | 国产黑丝在线一区二区三区| 国产精品18久久久久| 国产精品久久久久婷婷| 精品视频全国免费看| 久久国产剧场电影| 亚洲欧洲国产日本综合| 欧美电影一区二区三区| 国产精品亚洲视频| 一区二区不卡在线播放| 欧美成人一区二区| 91免费看`日韩一区二区| 日韩电影免费在线观看网站| 国产欧美一区二区三区网站| 欧美性感一区二区三区| 国产一区二区三区黄视频 | 欧美亚洲丝袜传媒另类| 久色婷婷小香蕉久久| 亚洲色图欧美激情| 91精品国产综合久久蜜臀| 国产91精品免费| 丝袜亚洲精品中文字幕一区| 国产婷婷精品av在线| 欧美三级电影精品| 国产成人在线免费| 午夜亚洲福利老司机| 国产欧美日韩中文久久| 欧美猛男超大videosgay| 成人丝袜高跟foot| 日韩制服丝袜av| 成人高清免费在线播放| 日韩精品91亚洲二区在线观看| 国产精品久久久久久久第一福利| 欧美一级专区免费大片| 97久久精品人人爽人人爽蜜臀| 免费精品视频在线| 一区二区在线电影| 欧美高清一级片在线观看| 欧美精品xxxxbbbb| 91免费版在线看| 国产乱码精品1区2区3区| 午夜激情综合网| 1024成人网| 久久久久99精品国产片| 911精品产国品一二三产区 | 成人中文字幕电影| 美女性感视频久久| 亚洲国产一区视频| 中文字幕佐山爱一区二区免费| 精品国产乱码久久久久久免费 | 奇米777欧美一区二区| 亚洲欧美日韩国产综合在线| 国产视频视频一区| 精品欧美乱码久久久久久| 欧美人狂配大交3d怪物一区| 色综合久久中文综合久久牛| 国产精品99久| 狠狠色狠狠色综合系列| 日韩精品电影一区亚洲| 亚洲国产一区二区视频| 亚洲人成网站在线| 国产精品国产三级国产aⅴ入口| 精品区一区二区| 日韩情涩欧美日韩视频| 欧美美女一区二区三区| 欧美三级一区二区| 日本高清不卡一区| 91浏览器入口在线观看| caoporn国产一区二区| 国产成人一级电影| 国产精品一区二区三区99| 欧美一区二区三区人| 在线观看av不卡| 色一情一伦一子一伦一区| 成人国产精品免费观看动漫| 国产凹凸在线观看一区二区| 国产在线播放一区三区四| 久久精品国产精品亚洲精品| 美女在线一区二区| 美国十次了思思久久精品导航| 欧美bbbbb| 裸体在线国模精品偷拍| 久久国产尿小便嘘嘘尿| 免费不卡在线视频| 久久国产精品露脸对白| 久久狠狠亚洲综合| 国产综合色视频| 国产一区二区三区免费播放| 国产美女在线精品| 国产激情偷乱视频一区二区三区| 国产一区二区成人久久免费影院| 国产一区高清在线| 国产盗摄视频一区二区三区| 国产激情一区二区三区桃花岛亚洲| 国产成人在线观看免费网站| 国产黄色精品视频| 成人动漫精品一区二区| 99久久国产综合色|国产精品| 色综合色综合色综合| 在线日韩一区二区| 8x8x8国产精品| 欧美大胆人体bbbb| 国产日韩精品一区| 国产精品久久久久久久岛一牛影视 | 亚洲欧洲三级电影| 不卡一区二区三区四区| 91丨porny丨蝌蚪视频| 色88888久久久久久影院野外 | 欧美精品一区二区三| 久久久不卡网国产精品一区| 国产精品视频一二三区| 亚洲精品免费在线| 五月婷婷激情综合| 老司机精品视频在线| 韩国精品主播一区二区在线观看| 国产成人在线网站| 91精彩视频在线| 日韩一区二区电影| 欧美激情一区二区三区在线| 亚洲免费在线观看视频| 偷窥少妇高潮呻吟av久久免费| 麻豆精品在线观看| 成人精品gif动图一区| 色呦呦国产精品| 欧美一区永久视频免费观看| 久久亚洲影视婷婷| 亚洲乱码日产精品bd| 五月激情六月综合| 国产酒店精品激情| 91蜜桃婷婷狠狠久久综合9色| 欧美高清视频不卡网| 亚洲精品一区二区三区在线观看| 国产精品福利电影一区二区三区四区| 亚洲一区免费观看| 久草热8精品视频在线观看| 国产91丝袜在线18| 欧美少妇xxx| 久久女同精品一区二区| 亚洲欧美激情小说另类| 蜜桃视频在线观看一区| av资源站一区| 91麻豆精品久久久久蜜臀| 国产日产精品一区| 亚洲国产视频一区| 国产很黄免费观看久久| 一区二区三区日韩精品视频| 另类综合日韩欧美亚洲| 99re这里只有精品视频首页| 欧美一区二区三区免费观看视频| 中文字幕免费一区| 日韩精品视频网站| 不卡av在线网| 日韩你懂的在线播放| 亚洲特黄一级片| 精品午夜久久福利影院| 91国产丝袜在线播放| 国产亚洲欧美中文| 午夜精品久久久久久久久| 成人午夜精品一区二区三区| 欧美美女激情18p| 亚洲天堂2014| 国产毛片精品视频| 制服丝袜中文字幕一区| 1区2区3区欧美| 国产乱子伦一区二区三区国色天香| 91国产精品成人| 国产精品久线观看视频| 捆绑调教美女网站视频一区| 在线精品视频一区二区三四| 久久精品综合网| 麻豆精品一区二区av白丝在线| 91日韩精品一区| 国产嫩草影院久久久久| 免费av成人在线| 欧美日韩美少妇| 亚洲人成网站精品片在线观看| 国产高清成人在线| 日韩欧美不卡一区| 日日骚欧美日韩|