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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? modbus.c

?? 基于TMS320F2812的電動(dòng)機(jī)控制源碼(使用C語言)
?? C
?? 第 1 頁 / 共 2 頁
字號(hào):
								{
							 	v->Index=0;			//對(duì)數(shù)據(jù)記錄部分詢問無效
							  }
							}
					v->CommFlag=SEND_DATA;
						}	//end switch16
					} 
				break;
				//其他功能代碼,不處理
				default:
					{
					v->CommFlag = WAIT_DATA_HEAD;
					}	
				}	//end	switch5
			}	//end if
			else
			{
			v->CommFlag = WAIT_DATA_HEAD;	
			}
		}
		break;
	
	//發(fā)送數(shù)據(jù)
	case SEND_DATA:
		{
		while((SciaRegs.SCIFFTX.bit.TXFFST<16)&&(v->CommCount<=v->Index))
			{
			SciaRegs.SCITXBUF=v->CommData[v->CommCount];
			v->CommCount++;   
			}
		if(v->CommCount>v->Index)
			v->CommFlag= WAIT_DATA_HEAD; 
		}
	default:	
		break;
	}	
}

///////////操作盤端口///////////////////////
void CommB(MODBUS *v)
{
	int	TempA,TempB,TempC;
	long * TablePoint;
	int * DataPoint;	
	//通訊幀故障清除
	if(ScibRegs.SCIRXST.bit.RXERROR)
	{
	ScibRegs.SCICTL1.bit.SWRESET=0;
	ScibRegs.SCICTL1.bit.SWRESET=1;
	}

	switch(v->CommFlag)	
	{
	//接受報(bào)頭
	case WAIT_DATA_HEAD:	
		{
		while((ScibRegs.SCIFFRX.bit.RXFIFST!=0)&&(v->CommFlag==0))
			{
			TempA=ScibRegs.SCIRXBUF.all;
			if((TempA==0x00ff)||(TempA==v->Slave_Address))
				{
				v->CommData[0]=TempA;
				v->Index=1;
				v->CommFlag=READ_DATA;		//跳出本循環(huán)
				v->CommCount=0;
				}
			}
		}	
		break;
	//接受數(shù)據(jù)		
	case READ_DATA:
		{
		v->CommCount++;
		while(ScibRegs.SCIFFRX.bit.RXFIFST!=0)
			{
			v->CommData[v->Index]=ScibRegs.SCIRXBUF.all;
			//if((v->CommData[v->Index]&0x0ff00)==0)
				{		//數(shù)據(jù)必須正確
				v->Index++;
				if(v->Index>=PARANUMMAX)
					{
					v->Index=0;
					v->CommFlag = WAIT_DATA_HEAD;
					}
				v->CommCount=0;	
				}
			}	
		if(v->CommCount>=DELAYCOUNT)
			{
			v->CommFlag = PROCESSING_DATA;	
			}
		}	
		break;
	//處理報(bào)文,產(chǎn)生響應(yīng)報(bào)文
	case PROCESSING_DATA:
		{
		if(CRC_cal(v->CommData,v->Index)==0)   //if1
			{
			switch(v->CommData[1])
				{	//switch2
				//MODBUS功能3
				case 3:				
					{
					TempA=(v->CommData[2]<<8)|(v->CommData[3]);		//參數(shù)起始地址
					switch(TempA)
						{	//switch3
						//菜單頁參數(shù)讀命令
						case 919:			
							{
							//固定長(zhǎng)度響應(yīng)報(bào)文
							v->CommData[2]=32;
							DataPoint=&Para_Tab[v->ParaNum][0] ;
							//讀取PARA_TAB中的數(shù)據(jù)
							TempA=3;
			  				while(TempA<(16*2+3))
			  					{
			  					if((TempA>0*2+3)&&(TempA<9*2+3))
			  						{
			  						v->CommData[TempA++]= (*DataPoint)&0x00ff;
			  						v->CommData[TempA++]= ((*DataPoint)>>8)&0x00ff;
			  						}
			  					else
			  						{
			  						v->CommData[TempA++]= ((*DataPoint)>>8)&0x00ff;
			  						v->CommData[TempA++]= (*DataPoint)&0x00ff;
			  						}	
			  					DataPoint++;
			  					}
			  				//寫入實(shí)際數(shù)據(jù)
			  				TablePoint=MenuInfo;
			  				DataPoint=(int *)TablePoint[v->ParaNum];		
							v->CommData[29]=(*DataPoint>>8)&0xff;    //寫入報(bào)文地址 
							v->CommData[30]=(*DataPoint)&0x0ff;    //寫入報(bào)文地址 
							TempA=CRC_cal(v->CommData,35);   //固定長(zhǎng)度
							v->CommData[35]=(TempA>>8)&0x00ff;		//寫入CRC校驗(yàn)位
							v->CommData[36]=TempA&0x00ff;

							v->Index = 36;			//共計(jì)發(fā)送36個(gè)數(shù)據(jù)
							v->CommCount = 0;
							v->CommFlag = SEND_DATA;  //轉(zhuǎn)入發(fā)送
							}
						break;
						//故障頁讀取
						case 900:			
							{
							v->CommData[2]=9*2;			//固定報(bào)文格式
							DataPoint=&Fault_Tab[v->FaultNum][0]; 
							//讀取PARA_TAB中的數(shù)據(jù)
							TempA=3;
			  				while(TempA<(9*2+3))
			  					{
			  					v->CommData[TempA++]= (*DataPoint)&0x00ff;
			  					v->CommData[TempA++]= (*DataPoint>>8)&0x00ff;
			  					DataPoint++;
			  					}
			  				//寫入實(shí)際數(shù)據(jù)
							TempA=CRC_cal(v->CommData,21);   		//固定長(zhǎng)度
							v->CommData[21]=(TempA>>8)&0x00ff;		//寫入CRC校驗(yàn)位
							v->CommData[22]=TempA&0x00ff;

							v->Index = 22;			//共計(jì)發(fā)送36個(gè)數(shù)據(jù)
							v->CommCount = 0;
							v->CommFlag = SEND_DATA;  //轉(zhuǎn)入發(fā)送
							}
						break;
						//其他,狀態(tài)頁讀取
						default:			
							{
							if(TempA<PARAMETER_MAX_NUMBER)
								{
								TablePoint=StatusInfo;
								TempB=(v->CommData[4]<<8)|(v->CommData[5])-1;	//數(shù)據(jù)個(gè)數(shù) - 1
								TempC=TempB+(v->CommData[2]<<8)|(v->CommData[3]);	//last data modbus address 
								v->CommData[2]=TempB*2;	//return modbus-read-data number
								v->Index=TempB*2+4+1;	//all send data number
								for(;TempB>=0;TempB--,TempC--)
									{
									DataPoint=(int *)TablePoint[TempC];
									TempA = TempB*2+4;
									v->CommData[TempA]=(*DataPoint)&0x0ff;
									TempA--;
									v->CommData[TempA]=(*DataPoint>>8)&0x0ff;
									}
								TempB=CRC_cal(v->CommData,v->Index);   //個(gè)數(shù)=標(biāo)號(hào)+1;
						
								v->CommData[v->Index]=(TempB>>8)&0xff;
								v->Index++;
								v->CommData[v->Index]=TempB&0xff;
								v->CommCount = 0;
								v->CommFlag = SEND_DATA;  //轉(zhuǎn)入發(fā)送
								}
							else 
								{
								v->CommFlag = WAIT_DATA_HEAD; 
								}	
							}
							 	
						} //end switch3	
					}	//end switch2 case3
				break;
				//MODBUS功能16  寫數(shù)據(jù)
				case 16:			
					{
					TempA=(v->CommData[2]<<8)|(v->CommData[3]);		//參數(shù)起始地址
					switch(TempA)
						{	//switch16
						case 932:
							{
							TablePoint=MenuInfo;
							DataPoint=(int *)TablePoint[v->ParaNum];	//數(shù)據(jù)地址

							*DataPoint=(v->CommData[7]<<8)+(v->CommData[8]); 

							TempB=CRC_cal(v->CommData,6);   //個(gè)數(shù)=標(biāo)號(hào)+1;
							
							v->CommData[6]=(TempB>>8)&0xff;
							v->CommData[7]=TempB&0xff;
							v->Index = 7;
							v->CommCount = 0;
							v->CommFlag = SEND_DATA;  //轉(zhuǎn)入發(fā)送
							}
							break;
						case 918:	//翻頁信息處理
							{
							TempB=(v->CommData[7]<<8)+(v->CommData[8]);  
							if(TempB==2)
								{
								v->ParaNum--; 
								if(v->ParaNum < 0 )
									v->ParaNum = MENU_MAX_NUMBER -1;
								}
							else if(TempB==1)
								{
								v->ParaNum++;
								if(v->ParaNum >= MENU_MAX_NUMBER)
									v->ParaNum = 0;
								}
							
								TempB=CRC_cal(v->CommData,6);   //個(gè)數(shù)=標(biāo)號(hào)+1;
						
								v->CommData[6]=(TempB>>8)&0xff;
								v->CommData[7]=TempB&0xff;
								v->Index = 7;
								v->CommCount = 0;
								v->CommFlag = SEND_DATA;  //轉(zhuǎn)入發(fā)送
							}
						break;
						default:
							{
							if(TempA < PARAMETER_MAX_NUMBER)
								{
								TablePoint=StatusInfo;
								TempB=(v->CommData[4]<<8)|(v->CommData[5])-1;	//數(shù)據(jù)個(gè)數(shù)
								TempC=TempB+(v->CommData[2]<<8)|(v->CommData[3]);	//數(shù)據(jù)地址
								v->Index=TempB*2+4+1;
								for(;TempB>=0;TempB--,TempC--)
									{
									DataPoint=(int *)TablePoint[TempC];
									TempA = TempB*2+7;
									*DataPoint=(v->CommData[TempA]<<8)+v->CommData[TempA+1] ;
									}
								TempB=CRC_cal(v->CommData,6);   //個(gè)數(shù)=標(biāo)號(hào)+1;
						
								v->CommData[6]=(TempB>>8)&0xff;
								v->CommData[7]=TempB&0xff;
								v->Index = 7;
								v->CommCount = 0;
								v->CommFlag = SEND_DATA;  //轉(zhuǎn)入發(fā)送
								}
							else
								{
							  	v->CommFlag = WAIT_DATA_HEAD;
							  	}
							}
					v->CommFlag=SEND_DATA;
						}	//end switch16
					} 
				break;
				//其他功能代碼,不處理
				default:
					{
					v->CommFlag = WAIT_DATA_HEAD;
					}	
				}	//end	switch5
			}	//end if
			else
			{
			v->CommFlag = WAIT_DATA_HEAD;	
			}
		}
		break;
	
	//發(fā)送數(shù)據(jù)
	case SEND_DATA:
		{
		while((ScibRegs.SCIFFTX.bit.TXFFST<16)&&(v->CommCount<=v->Index))
			{
			ScibRegs.SCITXBUF=v->CommData[v->CommCount];
			v->CommCount++;   
			}
		if(v->CommCount>v->Index)
			v->CommFlag= WAIT_DATA_HEAD; 
		}
	default:	
		break;
	}	
}



unsigned int CRC_cal(Uint16 *puchMsg,Uint16 usDataLen)
{
	unsigned char uchCRCHi=0xff;
	unsigned char uchCRCLo=0xff;
	unsigned int  uIndex;
	while(usDataLen--)
	{
		uIndex=uchCRCHi^*puchMsg++;
		uchCRCHi=uchCRCLo^auchCRCHi[uIndex];
		uchCRCLo=auchCRCLo[uIndex];
	}
	return(uchCRCHi<<8|uchCRCLo);
}


////初始化部分////////////////////////////////////

void InitSciAPort()
{
	EALLOW;
	//GpioMuxRegs.GPFMUX.all |= 0x0030;  
	EDIS;
	//stop bit=1 ;parity=odd ; parity disable; 
	SciaRegs.SCICCR.all = 0x07;			
	
	SciaRegs.SCICTL1.all = 0x03;
	SciaRegs.SCICTL2.all = 0x00;
	
	SciaRegs.SCIHBAUD = 0x01;
	SciaRegs.SCILBAUD = 0xe7;
	SciaRegs.SCIFFTX.bit.SCIFFENA=1;
	SciaRegs.SCICTL1.all = 0x23;
}

void InitSciBPort()
{
	EALLOW;
	GpioMuxRegs.GPGMUX.all |= 0x0030;
	EDIS;
	ScibRegs.SCICCR.all = 0x07;
	
	ScibRegs.SCICTL1.all = 0x03;
	ScibRegs.SCICTL2.all = 0x00;
	
	ScibRegs.SCIHBAUD = 0x01;
	ScibRegs.SCILBAUD = 0xe7;
	ScibRegs.SCIFFTX.bit.SCIFFENA=1;
	ScibRegs.SCICTL1.all = 0x23;
}


//////////////////////////////////////////////////////
////////	no more		//////////////////////////////
//////////////////////////////////////////////////////


?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久久电影| 欧美日韩不卡一区| 久久久九九九九| 久久99国产精品久久| 日韩精品最新网址| 极品尤物av久久免费看| 久久在线观看免费| 国产盗摄精品一区二区三区在线| 中文字幕日韩精品一区| 色女孩综合影院| 性做久久久久久免费观看| 日韩欧美久久一区| 成人激情视频网站| 一区二区三区影院| 日韩欧美在线123| 国产一区二区三区高清播放| 国产午夜精品福利| 色偷偷88欧美精品久久久| 天天操天天干天天综合网| 日韩欧美成人午夜| 波多野结衣91| 欧美在线你懂得| 日韩精品成人一区二区三区| 久久婷婷综合激情| 99久久99久久久精品齐齐| 亚洲自拍偷拍av| wwwwww.欧美系列| 色综合久久久网| 麻豆精品视频在线| 中文字幕一区三区| 欧美一区二区国产| 99精品视频中文字幕| 婷婷成人综合网| 国产精品国产三级国产普通话蜜臀 | 欧美变态tickling挠脚心| 福利一区福利二区| 天天爽夜夜爽夜夜爽精品视频| 久久综合九色综合97婷婷| 91成人免费在线视频| 国产综合久久久久久久久久久久| 亚洲精品老司机| 久久女同性恋中文字幕| 欧美在线免费观看视频| 高清不卡在线观看| 蜜桃传媒麻豆第一区在线观看| 亚洲精品中文字幕在线观看| 久久久久青草大香线综合精品| 精品视频在线免费观看| 99精品久久只有精品| 国产精品99久久久久久宅男| 视频一区国产视频| 亚洲欧美色图小说| 中文字幕免费观看一区| 日韩免费观看高清完整版在线观看| 91麻豆精品在线观看| 国产成人在线电影| 激情综合色综合久久| 日一区二区三区| 亚洲人精品午夜| 国产精品色一区二区三区| 久久综合成人精品亚洲另类欧美| 欧美精品粉嫩高潮一区二区| 欧洲视频一区二区| 97久久精品人人澡人人爽| 国产激情偷乱视频一区二区三区| 精一区二区三区| 日本成人在线网站| 青椒成人免费视频| 日本亚洲欧美天堂免费| 日韩国产精品久久| 亚洲成av人片在线观看无码| 一区二区在线看| 一区二区三区国产精华| 夜夜嗨av一区二区三区中文字幕 | 日韩欧美久久久| 欧美一级搡bbbb搡bbbb| 欧美一区欧美二区| 日韩网站在线看片你懂的| 5858s免费视频成人| 欧美一区中文字幕| 精品噜噜噜噜久久久久久久久试看| 91精品国产全国免费观看| 欧美丰满嫩嫩电影| 日韩一区二区不卡| 精品999久久久| 久久久噜噜噜久噜久久综合| 国产女同互慰高潮91漫画| 日本一区二区综合亚洲| 最新国产成人在线观看| 亚洲一区在线看| 日韩电影在线免费| 激情文学综合插| 国产999精品久久| 99久久精品费精品国产一区二区| 色综合天天综合网天天看片| 欧美午夜免费电影| 日韩三级在线免费观看| 久久综合色一综合色88| 国产精品白丝在线| 亚洲午夜在线观看视频在线| 免费成人av资源网| 风间由美一区二区三区在线观看 | 国产精品电影一区二区三区| 亚洲精选一二三| 日本午夜一区二区| 成人高清免费观看| 欧洲日韩一区二区三区| 精品国产一区二区三区不卡 | 九九九久久久精品| 成人h动漫精品| 欧美日韩www| 久久久精品影视| 一区二区欧美精品| 国产在线精品视频| 91国偷自产一区二区三区成为亚洲经典 | www.日韩在线| 欧美日韩一区二区三区不卡| 精品国产免费一区二区三区香蕉| 国产精品黄色在线观看| 日韩主播视频在线| 国产aⅴ精品一区二区三区色成熟| 欧美性受极品xxxx喷水| 久久日一线二线三线suv| 亚洲欧美日韩国产一区二区三区 | 亚洲v中文字幕| 粉嫩aⅴ一区二区三区四区 | 精品国产一二三区| 亚洲影视在线观看| 国产91丝袜在线播放九色| 欧美日韩精品欧美日韩精品一综合| 久久日韩粉嫩一区二区三区| 午夜婷婷国产麻豆精品| 国产成人亚洲精品青草天美| 欧美一区二区性放荡片| 亚洲图片激情小说| 国产精品911| 日韩午夜激情视频| 亚洲一区二区三区精品在线| 国产成人亚洲综合a∨婷婷| 这里只有精品99re| 亚洲自拍偷拍欧美| av在线这里只有精品| 久久伊人蜜桃av一区二区| 三级不卡在线观看| 欧美亚洲丝袜传媒另类| 国产精品短视频| 福利一区在线观看| 久久综合网色—综合色88| 美女视频网站黄色亚洲| 91麻豆精品国产91久久久久久| 亚洲人精品午夜| 国产精品一区二区在线看| 精品免费日韩av| 狂野欧美性猛交blacked| 欧美二区在线观看| 亚洲国产欧美日韩另类综合 | 久久不见久久见免费视频7| 欧美日韩高清一区| www.亚洲国产| 国产精品毛片久久久久久久 | 99久久久免费精品国产一区二区| 久久久久久久综合| 久久国产日韩欧美精品| 欧美大片免费久久精品三p| 日韩高清在线电影| 欧美电影在线免费观看| 日本女优在线视频一区二区| 3atv一区二区三区| 蜜桃视频在线观看一区二区| 日韩欧美色综合网站| 另类成人小视频在线| 精品国产电影一区二区| 国产精品自在欧美一区| 国产午夜久久久久| 国产98色在线|日韩| 国产精品久久一级| 99re这里只有精品首页| 亚洲精品国久久99热| 欧美日韩午夜在线视频| 日本中文字幕一区二区视频| 91精品国产黑色紧身裤美女| 久久99精品视频| 久久亚洲一区二区三区四区| 成人综合在线视频| 日韩毛片精品高清免费| 欧美日韩国产在线观看| 日韩电影一二三区| 欧美精品一区在线观看| 成人一区二区三区中文字幕| 亚洲码国产岛国毛片在线| 欧美色精品在线视频| 久久精品国产99国产精品| 国产欧美日韩一区二区三区在线观看| av影院午夜一区| 肉肉av福利一精品导航| 精品999久久久| 色综合夜色一区| 久久精品国产久精国产爱| 中文字幕免费一区| 欧美精品电影在线播放|