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

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

?? modbus.h

?? MODBUS協議實現.本程序實現了modbus協議
?? H
字號:
/*******************************************************************************
*
*                              MODBUS通信協議
*
********************************************************************************
*版本:0.0.1
*功能:基于AVR系列單片機實現主從機之間的數據通信(第3層協議)
*特點:支持主從模式選擇
*     可實現mega162 和 mega16 芯片之間的自動切換
*	  可快速設置115200bps和57600bps
*	  有專用通信緩存,方便數據的存放
*     有接收和發送數據提示(以LED燈顯示)
*	  可超時重發多次,超過一定次數才發棄本幀的發送.
*	  有錯誤警報編碼生成
*已實現的功能碼:
*	  0x03		讀保持寄存器
*	  0x04		讀輸入寄存器
*	  0x06		寫單個寄存器
*	  0x10		寫多個寄存器
*缺點:1.發送時,不能接收數據,只有完全按應答時才可正常通信.
*	  2.發送完一幀且收到應答或失幀后,才能發送下一幀.
*     同時程序會進入死循環(直到一幀發送結束).最大時長為: 
*	  超時時間(TIME_OUT_MAX)*允許超時次數(STOP_TIMES+1) + 1幀數據發送時間(<2ms)
*時間:2006-11-16
*作者:wayne
********************************************************************************
*版本:0.0.2
*修正:MOD_REG_MIN的值,由-1變成0.主要是程序對無符進行比較時-1則為取反之大數
*     主定時器中connectState狀態多請空了,使接收回發不正常
*	  對LED提示燈函數定義進行了改進
*時間:2006-11-17
*作者:wayne
*******************************************************************************/
#include "TARGET.H"

#ifdef __iom162v_h
	 #pragma interrupt_handler usrtReceive:20     
	 #pragma interrupt_handler time0INT:18
	 #define MODBUS_UDR	   UDR0
	 #define T0_TIMSK_VAL  0x02
	 
	 #define LED_PORT	   PORTD
	 #define sendPIN	   3
	 #define receivePIN    2
#else
	 /* __iom16v_h 不同板子其相應中斷也不一樣*/
	 #pragma interrupt_handler usrtReceive:12
	 #pragma interrupt_handler time0INT:10
	 #define MODBUS_UDR	   UDR
	 #define T0_TIMSK_VAL  0x01
	 
	 #define LED_PORT	   PORTB
	 #define sendPIN	   6
	 #define receivePIN    7
#endif

/*提示燈,在發送數據和接收數據時會點亮*/
#define sendLED(x)	   ( x?(LED_PORT &= ~BIT(sendPIN)):(LED_PORT |= BIT(sendPIN)) )
#define receiveLED(x)  ( x?(LED_PORT &= ~BIT(receivePIN)):(LED_PORT |= BIT(receivePIN)) )

/*通信地址*/
#define TARGET_ADDRESS   0x02
#define LOCAL_ADDRESS 	 0x01

/*通信主定時器相關參數宏定義 crystal  :11.059MHZ
分頻:系統頻率時間/ 分頻 = 定時器頻率
計數:( 256 - T0_COUNT )*定時頻率 = 定時時間
停止位: STOP_TIMES * 定時時間 = 發送數據分隔時間(應大于3.5個字符時間)
超時時間: 發送數據間隔 * TIME_OUT_MAX = 允許超時時間
波特率UBRR: 115200 = 5;57600  = 11;19200  = 35;9600   = 71
當前傳輸格式:8數據位,無校檢位,2停止位,控制流無 
*/
//#define BAUDRATE57600
#define BAUDRATE115200

#ifdef BAUDRATE115200
	   /*115200,95us/Byte,Time0 100us timeout 100ms*/
	   #define BAUD_RATE	  5
	   #define DIVIDED		  0x02
	   #define T0_COUNT		  (256 - 138)
	   #define STOP_TIMES	  2
	   #define TIME_OUT_MAX	  1000
#else
	   /*57600,192us/Byte,Time0 200us timeout 100ms(10ms/8Byte real time)*/
	   /*注:臺達屏在此通信頻率下進行多寄存器寫時不穩定.*/
	   #define BAUD_RATE	  11
	   #define DIVIDED		  0x03
	   #define T0_COUNT		  (256 - 35)
	   #define STOP_TIMES	  2
	   #define TIME_OUT_MAX	  500
#endif

#ifdef MODBUS_GLOBAL
	   #define MODBUS_EXT
#else
	   #define MODBUS_EXT extern
#endif

/*通信數據區大小,因為可能為多寄存器操作則此時數據大*/
#define BUFF_MAX		 100
/*通信寄存器大小*/
#define REG_MAX		   	 100	
#define CHECK_BUFF		 4

/*寄存器值范圍   MIN <= X < MAX */
#define MOD_REG_MIN 	 0 				
#define MOD_REG_MAX 	 REG_MAX

/*錯誤信息定義*/
#define MOD_ERROR  		 0x80
#define CAN_ERR_TIMES	 0x03

MODBUS_EXT enum  connectState{ STATE_REC = 0x01, STATE_SEND = 0x02,
			  	STATE_NULL = 0x00 };	   	 	   			  	   /*當前狀態:接收數據、發送數據、無操作*/
MODBUS_EXT enum  errorCode{ ERR_STOP = 0x06, ERR_UNKOWN = 0x05, ERR_SLAVEMOD = 0x07,
			  	ERR_OUTRANGE = 0x02, ERR_FUN = 0x01, ERR_NULL = 0x00, ERR_SEND_REC = 0x08,
			  	ERR_TRAN = 0x03, ERR_TARGET = 0x04 };		  	   /*通信錯誤編碼*/
MODBUS_EXT enum  functionCode{ FUN_NULL = 0x00, FUN_READ_REG = 0x03, FUN_WRITE_REG = 0x06,
			    FUN_READ_INPUT = 0x04, FUN_WRITE_MULTI = 0x10 };   /*通信功能碼*/
MODBUS_EXT enum  connectMod{ MASTER = 1, SLAVE = 0 };		   /*主從模式*/

/*MASTER模式下的相關參數*/
MODBUS_EXT uchar requestDataCount;  	 	/*請求讀寫數據的個數(雙字節)*/
MODBUS_EXT uchar requestDataAddr;		/*本地請求交互數據的寄存器地址*/
MODBUS_EXT uchar requestFunCode;			/*請求交互的功能碼*/

MODBUS_EXT uchar canSendNext;			/*可發送下一串數*/
MODBUS_EXT uchar	connectState;			/*發送標志位, 為1時:接受數據;為2時:發送數據;為0時不做操作*/
MODBUS_EXT uchar stopCount;				/*停止次數*/
MODBUS_EXT uchar errorCount;				/*通信錯誤次數,大于3時提示*/
MODBUS_EXT uchar errorMessage;			/*通信錯誤提示信息編碼*/
MODBUS_EXT uchar selConnectMod;	   	  	/*當前選擇的通信主從模式*/
MODBUS_EXT uchar checkBuff[CHECK_BUFF];  /*回復校檢數組*/
MODBUS_EXT uchar sendData[BUFF_MAX];		/*發送數據數組*/
MODBUS_EXT uchar receiveData[BUFF_MAX];	/*接受數據數組*/
MODBUS_EXT uint  sendSp;	 				/*發送數據的當前數據指針*/
MODBUS_EXT uint  sendNum;  				/*當前要發的數據個數*/
MODBUS_EXT uint  receiveNum;				/*接受數據長度*/
MODBUS_EXT uint  connectAddress;			/*通信地址*/
MODBUS_EXT uint  requestTimeOut;			/*回復超時最大時間*/
MODBUS_EXT uint  registerData[REG_MAX];	/*寄存器組數據*/


MODBUS_EXT uint GetCRCCode(uchar* pSendBuf, uint nLen);
MODBUS_EXT void usrtReceive(void);
MODBUS_EXT uint crcReceive(void);
MODBUS_EXT void errorPackage(uchar code);
MODBUS_EXT void backDataPackage(void);
MODBUS_EXT void InitModbus(uchar connectMod );
MODBUS_EXT void sendDataPackage(uchar funCode, uint addr, uint count, uint regAddr);
MODBUS_EXT uint checkRecPackage(void);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美亚洲日本国产| 欧美日韩高清在线播放| 精品第一国产综合精品aⅴ| 亚洲成a人片在线不卡一二三区| 一本大道久久精品懂色aⅴ| 亚洲欧洲一区二区在线播放| 91久久国产综合久久| 婷婷综合久久一区二区三区| 精品国产一区二区精华| 99re这里只有精品首页| 午夜不卡在线视频| 久久久一区二区| 欧美福利视频导航| 国产iv一区二区三区| 麻豆国产精品视频| 亚洲在线一区二区三区| 亚洲精品一区在线观看| 欧美影视一区二区三区| 99久久99久久综合| 国产麻豆一精品一av一免费| 婷婷亚洲久悠悠色悠在线播放| 久久视频一区二区| 欧美一区二区三区在线观看| 91丨九色丨蝌蚪富婆spa| 亚洲少妇30p| 欧美一区二区观看视频| 成人手机在线视频| 秋霞成人午夜伦在线观看| 国产精品国产精品国产专区不蜜| 91精品久久久久久久91蜜桃| 成人永久免费视频| 蜜桃在线一区二区三区| 成人激情免费网站| 中文字幕中文字幕中文字幕亚洲无线 | 欧美日韩高清在线播放| 92精品国产成人观看免费| 精品一区二区日韩| 亚洲欧美中日韩| 国产欧美精品一区二区三区四区 | 国内精品在线播放| 免费不卡在线视频| 国产资源精品在线观看| 亚洲靠逼com| 亚洲高清在线视频| 午夜久久久久久电影| 亚洲伊人色欲综合网| 污片在线观看一区二区| 美女在线视频一区| 亚洲国产乱码最新视频| 亚洲男人的天堂一区二区| 亚洲美女免费在线| 天天av天天翘天天综合网| 亚洲一区二区精品3399| 视频一区二区三区入口| 久久电影网电视剧免费观看| 国产一区二区久久| 91久久精品国产91性色tv| av成人老司机| 国产精品一级黄| 91在线一区二区| 91精品国产91热久久久做人人| 欧美电影免费观看高清完整版在线 | 国产电影一区二区三区| av动漫一区二区| 日韩三级电影网址| 亚洲欧美日韩国产一区二区三区| 亚洲v精品v日韩v欧美v专区| 久久国内精品自在自线400部| 免费人成在线不卡| 亚洲电影激情视频网站| 国产精品一区二区91| 在线亚洲精品福利网址导航| 91精品国产综合久久香蕉的特点| 国产夜色精品一区二区av| 偷拍亚洲欧洲综合| 91在线观看一区二区| 日韩欧美三级在线| 石原莉奈在线亚洲三区| www.欧美色图| 国产精品久久久久久久久久免费看| 日韩和欧美的一区| 欧美欧美午夜aⅴ在线观看| 亚洲黄色免费电影| 91丨国产丨九色丨pron| 日韩美女视频19| 99久久综合色| 久久精品人人做| 国产剧情一区二区| 久久一夜天堂av一区二区三区| 蜜臀久久99精品久久久久久9| 国产91综合网| 国产精品欧美综合在线| 99久久久无码国产精品| 欧美国产日本视频| 久久99精品网久久| 国产精品午夜电影| 色婷婷精品大视频在线蜜桃视频| 亚洲福利视频导航| 欧美一级夜夜爽| 国产成人aaa| 一区二区三区蜜桃| 欧美一卡二卡在线观看| 成人天堂资源www在线| 一级中文字幕一区二区| 久久久美女毛片| 久久亚洲综合色一区二区三区| 国产91精品一区二区麻豆网站| 亚洲精品少妇30p| 3atv一区二区三区| 99久久综合国产精品| 青青青伊人色综合久久| 国产精品免费av| 久久久欧美精品sm网站| 欧美精品丝袜中出| 成人美女视频在线观看| 激情综合网av| 日韩国产在线观看| 中文字幕日韩一区| 欧美韩国日本不卡| 国产亲近乱来精品视频| 欧美日韩国产综合久久 | 亚洲日本电影在线| 欧美二区在线观看| 欧美午夜视频网站| 色88888久久久久久影院按摩| 国产麻豆欧美日韩一区| 亚洲va韩国va欧美va| 国产精品国产三级国产普通话三级 | 夜夜嗨av一区二区三区网页| 麻豆国产91在线播放| 日本不卡的三区四区五区| 天堂蜜桃91精品| 成人午夜电影小说| 欧美日韩国产综合久久| 久久久不卡影院| 日韩精品一卡二卡三卡四卡无卡| 狠狠网亚洲精品| 欧美亚洲综合另类| 91精品在线免费观看| 综合久久国产九一剧情麻豆| 亚洲第四色夜色| 色婷婷av一区二区三区gif| 精品国产91亚洲一区二区三区婷婷| 最新国产成人在线观看| 国内精品久久久久影院色| 欧美夫妻性生活| 亚洲综合一区二区精品导航| 国产成人综合亚洲网站| 日韩视频在线你懂得| 天天影视网天天综合色在线播放| 国产精品一二三在| 欧美精品一区二区三区很污很色的 | 久久99热99| 精品av久久707| 蜜桃在线一区二区三区| 制服丝袜中文字幕亚洲| 午夜精品影院在线观看| 欧美高清hd18日本| 日韩福利视频导航| 精品国产乱码久久| 国产精品1区2区3区| 欧美高清在线一区二区| 成人激情综合网站| 中文字幕一区二区三区四区| 色噜噜狠狠成人中文综合| 亚洲福利视频导航| 日韩免费在线观看| 日韩欧美一区二区视频| k8久久久一区二区三区| 亚洲日本乱码在线观看| 欧美一区二区二区| 亚洲一区二区三区国产| 北岛玲一区二区三区四区| 91免费版pro下载短视频| 久久久精品国产免大香伊| 波多野结衣亚洲| 日韩精品成人一区二区在线| 久久影院午夜片一区| 色天天综合久久久久综合片| 久久精品二区亚洲w码| 最新不卡av在线| 欧美成人精品二区三区99精品| 大桥未久av一区二区三区中文| 午夜精品国产更新| 国产精品成人午夜| 久久久激情视频| 日韩午夜av一区| 欧美日韩在线一区二区| 99视频一区二区| 国产精品一区二区不卡| 美女一区二区在线观看| 色天天综合久久久久综合片| 国产精品久久久久久亚洲毛片 | 欧美日韩一级二级三级| 风间由美一区二区av101| 国产偷国产偷精品高清尤物| 国产一区二区三区在线观看免费视频 | 欧美日韩三级一区| 国产不卡视频在线观看| 亚洲免费观看高清完整版在线观看 |