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

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

?? demo.c

?? w5100 范例程序 經典應用
?? C
?? 第 1 頁 / 共 2 頁
字號:
					for(i=0;i<4;i++)
						I2C_Write(IP_ADDR_EE+i,Temp_Buffer[5+i]);

					set_data_ok(4);
				}
				break;

			/* 端口0設置 */
			case 0x10:			/* 端口號 */
				if(Temp_Buffer[2]!=4)
					error_process();
				else
				{
					I2C_Write(S0_PORT_EE,Temp_Buffer[5]);
					I2C_Write(S0_PORT_EE+1,Temp_Buffer[6]);
					set_data_ok(2);
				}
				break;
			case 0x11:			/* 目的IP地址 */
				if(Temp_Buffer[2]!=6)
					error_process();
				else
				{
					for(i=0;i<4;i++)
						I2C_Write(S0_DIP_EE+i,Temp_Buffer[5+i]);

					set_data_ok(4);
				}
				break;
			case 0x12:			/* 目的端口號 */
				if(Temp_Buffer[2]!=4)
					error_process();
				else
				{
					I2C_Write(S0_DPORT_EE,Temp_Buffer[5]);
					I2C_Write(S0_DPORT_EE+1,Temp_Buffer[6]);
					set_data_ok(2);
				}
				break;
			case 0x13:			/* 端口0的工作模式 */
				if(Temp_Buffer[2]!=3)
					error_process();
				else
				{
					S0_Mode=Temp_Buffer[5];
					I2C_Write(S0_MODE_EE,S0_Mode);
					set_data_ok(1);
				}
				break;

			/* 端口1設置 */
			case 0x20:			/* 端口號 */
				if(Temp_Buffer[2]!=4)
					error_process();
				else
				{
					I2C_Write(S1_PORT_EE,Temp_Buffer[5]);
					I2C_Write(S1_PORT_EE+1,Temp_Buffer[6]);
					set_data_ok(2);
				}
				break;
			case 0x21:			/* 目的IP地址 */
				if(Temp_Buffer[2]!=6)
					error_process();
				else
				{
					for(i=0;i<4;i++)
						I2C_Write(S1_DIP_EE+i,Temp_Buffer[5+i]);

					set_data_ok(4);
				}
				break;
			case 0x22:			/* 目的端口號 */
				if(Temp_Buffer[2]!=4)
					error_process();
				else
				{
					I2C_Write(S1_DPORT_EE,Temp_Buffer[5]);
					I2C_Write(S1_DPORT_EE+1,Temp_Buffer[6]);
					set_data_ok(2);
				}
				break;
			case 0x23:			/* 端口1的工作模式 */
				if(Temp_Buffer[2]!=3)
					error_process();
				else
				{
					S1_Mode=Temp_Buffer[5];
					I2C_Write(S1_MODE_EE,S1_Mode);
					set_data_ok(1);
				}
				break;

			/* 端口2設置 */
			case 0x30:			/* 端口號 */
				if(Temp_Buffer[2]!=4)
					error_process();
				else
				{
					I2C_Write(S2_PORT_EE,Temp_Buffer[5]);
					I2C_Write(S2_PORT_EE+1,Temp_Buffer[6]);
					set_data_ok(2);
				}
				break;
			case 0x31:			/* 目的IP地址 */
				if(Temp_Buffer[2]!=6)
					error_process();
				else
				{
					for(i=0;i<4;i++)
						I2C_Write(S2_DIP_EE+i,Temp_Buffer[5+i]);

					set_data_ok(4);
				}
				break;
			case 0x32:			/* 目的端口號 */
				if(Temp_Buffer[2]!=4)
					error_process();
				else
				{
					I2C_Write(S2_DPORT_EE,Temp_Buffer[5]);
					I2C_Write(S2_DPORT_EE+1,Temp_Buffer[6]);
					set_data_ok(2);
				}
				break;
			case 0x33:			/* 端口2的工作模式 */
				if(Temp_Buffer[2]!=3)
					error_process();
				else
				{
					S2_Mode=Temp_Buffer[5];
					I2C_Write(S2_MODE_EE,S2_Mode);
					set_data_ok(1);
				}
				break;

			/* 端口3設置 */
			case 0x40:			/* 端口號 */
				if(Temp_Buffer[2]!=4)
					error_process();
				else
				{
					I2C_Write(S3_PORT_EE,Temp_Buffer[5]);
					I2C_Write(S3_PORT_EE+1,Temp_Buffer[6]);
					set_data_ok(2);
				}
				break;
			case 0x41:			/* 目的IP地址 */
				if(Temp_Buffer[2]!=6)
					error_process();
				else
				{
					for(i=0;i<4;i++)
						I2C_Write(S3_DIP_EE+i,Temp_Buffer[5+i]);

					set_data_ok(4);
				}
				break;
			case 0x42:			/* 目的端口號 */
				if(Temp_Buffer[2]!=4)
					error_process();
				else
				{
					I2C_Write(S3_DPORT_EE,Temp_Buffer[5]);
					I2C_Write(S3_DPORT_EE+1,Temp_Buffer[6]);
					set_data_ok(2);
				}
				break;
			case 0x43:			/* 端口3的工作模式 */
				if(Temp_Buffer[2]!=3)
					error_process();
				else
				{
					S3_Mode=Temp_Buffer[5];
					I2C_Write(S3_MODE_EE,S3_Mode);
					set_data_ok(1);
				}
				break;
			case 0x82:
				if(Temp_Buffer[2]!=3)
					error_process();
				else
				{
					if(Temp_Buffer[5]==1)
					{
						GPIO_SetBits(GPIOB, LED_DRIVE); 		/* 開啟LED指示燈 */

						set_data_ok(1);
					}
					else if(Temp_Buffer[5]==0)
					{
						GPIO_ResetBits(GPIOB, LED_DRIVE); 		/* 關閉LED指示燈 */
						set_data_ok(1);
					}
					else
						error_process();
				}
				break;

			default:
				error_process();
				break;
		}
	}
	else				/* 讀取對象參數 */
	{
		if(Temp_Buffer[2]!=2)
			error_process();
		else
		{
			Temp_Buffer[2]=6;
			switch(i)
			{
				case 0:			/* 網關 */
					for(i=0;i<4;i++)
						Temp_Buffer[5+i]=I2C_Read(GATEWAY_IP_EE+i);
					break;
				case 1:			/* 子網掩碼 */
					for(i=0;i<4;i++)
						Temp_Buffer[5+i]=I2C_Read(SUBNET_MASK_EE+i);
					break;
				case 2:			/* 物理地址 */
					for(i=0;i<6;i++)
						Temp_Buffer[5+i]=I2C_Read(PHY_ADDR_EE+i);

					Temp_Buffer[2]+=2;
					break;
				case 3:			/* 本機IP地址 */
					for(i=0;i<4;i++)
						Temp_Buffer[5+i]=I2C_Read(IP_ADDR_EE+i);
					break;

				/* 讀取端口0的配置參數 */
				case 0x10:			/* 端口0的端口號 */
					for(i=0;i<2;i++)
						Temp_Buffer[5+i]=I2C_Read(S0_PORT_EE+i);

					Temp_Buffer[2]-=2;
					break;
				case 0x11:			/* 端口0的目的IP地址 */
					for(i=0;i<4;i++)
						Temp_Buffer[5+i]=I2C_Read(S0_DIP_EE+i);
					break;
				case 0x12:			/* 端口0的目的端口號 */
					for(i=0;i<2;i++)
						Temp_Buffer[5+i]=I2C_Read(S0_DPORT_EE+i);

					Temp_Buffer[2]-=2;
					break;
				case 0x13:			/* 端口0的工作模式 */
					Temp_Buffer[5]=S0_Mode;
					Temp_Buffer[2]-=3;
					break;

				/* 讀取端口1的配置參數 */
				case 0x20:			/* 端口1的端口號 */
					for(i=0;i<2;i++)
						Temp_Buffer[5+i]=I2C_Read(S1_PORT_EE+i);

					Temp_Buffer[2]-=2;
					break;
				case 0x21:			/* 端口1的目的IP地址 */
					for(i=0;i<4;i++)
						Temp_Buffer[5+i]=I2C_Read(S1_DIP_EE+i);
					break;
				case 0x22:			/* 端口1的目的端口號 */
					for(i=0;i<2;i++)
						Temp_Buffer[5+i]=I2C_Read(S1_DPORT_EE+i);

					Temp_Buffer[2]-=2;
					break;
				case 0x23:			/* 端口1的工作模式 */
					Temp_Buffer[5]=S1_Mode;
					Temp_Buffer[2]-=3;
					break;

				/* 讀取端口2的配置參數 */
				case 0x30:			/* 端口2的端口號 */
					for(i=0;i<2;i++)
						Temp_Buffer[5+i]=I2C_Read(S2_PORT_EE+i);
					Temp_Buffer[2]-=2;
					break;
				case 0x31:			/* 端口2的目的IP地址 */
					for(i=0;i<4;i++)
						Temp_Buffer[5+i]=I2C_Read(S2_DIP_EE+i);
					break;
				case 0x32:			/* 端口2的目的端口號 */
					for(i=0;i<2;i++)
						Temp_Buffer[5+i]=I2C_Read(S2_DPORT_EE+i);

					Temp_Buffer[2]-=2;
					break;
				case 0x33:			/* 端口2的工作模式 */
					Temp_Buffer[5]=S2_Mode;
					Temp_Buffer[2]-=3;
					break;

				/* 讀取端口3的配置參數 */
				case 0x40:			/* 端口3的端口號 */
					for(i=0;i<2;i++)
						Temp_Buffer[5+i]=I2C_Read(S3_PORT_EE+i);

					Temp_Buffer[2]-=2;
					break;
				case 0x41:			/* 端口3的目的IP地址 */
					for(i=0;i<4;i++)
						Temp_Buffer[5+i]=I2C_Read(S3_DIP_EE+i);
					break;
				case 0x42:			/* 端口3的目的端口號 */
					for(i=0;i<2;i++)
						Temp_Buffer[5+i]=I2C_Read(S3_DPORT_EE+i);

					Temp_Buffer[2]-=2;
					break;
				case 0x43:			/* 端口3的工作模式 */
					Temp_Buffer[5]=S3_Mode;
					Temp_Buffer[2]-=3;
					break;

				case 0x80:			/* 讀取溫度值 */
					Temp_Buffer[5]=Temperature>>8;
					Temp_Buffer[6]=Temperature;
					Temp_Buffer[2]-=2;
					break;
				case 0x81:			/* 讀取電位器的電壓值 */
					Temp_Buffer[5]=Pot>>8;
					Temp_Buffer[6]=Pot;
					Temp_Buffer[2]-=2;
					break;
				case 0x82:			/* 讀取LED的狀態 */
					if(GPIO_ReadOutputDataBit(GPIOB, LED_DRIVE))
						Temp_Buffer[5]=1;
					else
						Temp_Buffer[5]=0;

					Temp_Buffer[2]-=3;
					break;
				default:
					error_process();
					break;
			}
		}
	}
}

/*********************************************************************
程序名: Process_Socket_Data
輸入: 端口號
輸出: 無
返回:
說明:本過程先調用S_rx_process()從W5100的端口接收數據緩沖區讀取數據,
	然后將讀取的數據從Rx_Buffer拷貝到Temp_Buffer緩沖區進行處理。

	處理完畢,將數據從Temp_Buffer拷貝到Tx_Buffer緩沖區。調用S_tx_process()
	發送數據。
*********************************************************************/
void Process_Socket_Data(SOCKET s)
{
	unsigned short size;

	size=S_rx_process(s);
	memcpy(Temp_Buffer, Rx_Buffer, size);

	Rx_Data_Process(size);

	size=Temp_Buffer[2]+3;
	memcpy(Tx_Buffer, Temp_Buffer, size);

	S_tx_process(s, size);
}

/*********************************************************************
程序名: Process_UART_Data
輸入: 無
輸出: 無
返回:
說明:本過程先將UART的數據從UART_Rx_Buffer拷貝到Temp_Buffer緩沖區進行處理。

	處理完畢,將數據從Temp_Buffer拷貝到UART_Tx_Buffer緩沖區等待發送數據。
*********************************************************************/
void Process_UART_Data(void)
{
	memcpy(Temp_Buffer, UART_Rx_Buffer, RxCounter);

	Rx_Data_Process(RxCounter);

	TxCounter=Temp_Buffer[2]+3;
	memcpy(UART_Tx_Buffer, Temp_Buffer, TxCounter);

	USART_SendData(USART1, UART_Tx_Buffer[0]);
	TxIndex=1;

	RxCounter=0;
	UART_DataReceive=0;
}

/*********************************************************************
程序名: ADC_Value_Conv
輸入: 無
輸出: 溫度值和模擬電壓值
返回:
說明:分別采集8個數據進行算術平均
	  計算溫度時,不僅采集溫度值,還采集參考電壓值,溫度值通過計算獲得
*********************************************************************/
void ADC_Value_Conv(void)
{
	unsigned char i;

	if(ADC_Complete==1)
	{
		ADC_Complete=0;

		if(ADC_state==0)			/* 完成3個參數的8次采集 */
		{
			Temperature=temperature[0];			/* 8次溫度值平均 */
			for(i=1; i<8 ;i++)
				Temperature+=temperature[i];
			Temperature/=8;

			Vref=vref[0];						/* 8次參考電壓值平均 */
			for(i=1; i<8; i++)
				Vref+=vref[i];
			Vref/=8;

			Temperature=3376-2680*Temperature/Vref;		/* 計算溫度值 */

			Pot=pot[0];							/* 8次模擬電壓值平均 */
			for(i=1; i<8; i++)
				Pot+=pot[i];
			Pot=Pot/99;						/* Pot*330/8/4096 */
		}
		ADC_SoftwareStartConvCmd(ADC1, ENABLE);		/* 啟動新的一次ADC */
	}
}

/*****************************************************************
                           主程序
*****************************************************************/
int main(void)
{
	/* 初始化STM32F101 */
	System_Initialization();

	/* 檢查是否進入默認參數設置狀態,然后從24LC01 EEPROM中獲取網絡參數 */
	Load_Net_Parameters();

	/* 初始化W5100 */
	W5100_Initialization();

	do
	{
		/* 設置W5100端口 */
		W5100_Socket_Set();

		/* 處理W5100中斷 */
		if(W5100_Interrupt)
			W5100_Interrupt_Process();

		/* 如果Socket0接收到數據 */
		if((S0_Data & S_RECEIVE) == S_RECEIVE)
		{
			S0_Data&=~S_RECEIVE;
			Process_Socket_Data(0);
		}

		/* 如果Socket1接收到數據 */
		if((S1_Data & S_RECEIVE) == S_RECEIVE)
		{
			S1_Data&=~S_RECEIVE;
			Process_Socket_Data(1);
		}

		/* 如果Socket2接收到數據 */
		if((S2_Data & S_RECEIVE) == S_RECEIVE)
		{
			S2_Data&=~S_RECEIVE;
			Process_Socket_Data(2);
		}

		/* 如果Socket3接收到數據 */
		if((S3_Data & S_RECEIVE) == S_RECEIVE)
		{
			S3_Data&=~S_RECEIVE;
			Process_Socket_Data(3);
		}

		/* 如果UART接收到完整的數據包 */
		if(UART_DataReceive==1)
		{
			UART_DataReceive=0;
			Process_UART_Data();
		}

		/* 處理AD轉換的數據 */
		ADC_Value_Conv();
	}while(1);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99视频有精品| 久久久久久久久久久电影| 欧美电影精品一区二区 | 欧美亚洲愉拍一区二区| 亚洲免费看黄网站| 精品亚洲欧美一区| 欧美日韩免费观看一区三区| 中文字幕一区二区日韩精品绯色| 日本亚洲天堂网| 欧日韩精品视频| 国产精品久久久久久久浪潮网站| 国内精品视频666| 欧美精品国产精品| 亚洲影视在线播放| 成熟亚洲日本毛茸茸凸凹| 日韩精品一区二区在线| 亚洲图片欧美视频| 在线免费观看日韩欧美| 中日韩av电影| 国产成人av在线影院| 日韩三级免费观看| 视频一区欧美精品| 欧美另类z0zxhd电影| 亚洲丶国产丶欧美一区二区三区| 99久久精品一区| 国产精品成人网| 99久久精品情趣| 中文字幕一区二区三区色视频| 国产福利一区二区三区视频| 久久久国产精华| 国产99久久久国产精品免费看| 精品99久久久久久| 国产成a人亚洲| 中文字幕在线一区| 色呦呦网站一区| 亚洲国产精品影院| 日韩欧美中文字幕一区| 美女视频网站黄色亚洲| 欧美videofree性高清杂交| 激情文学综合网| 欧美激情在线一区二区| 99这里都是精品| 一级女性全黄久久生活片免费| 欧美性猛交xxxx乱大交退制版 | 欧美美女激情18p| 午夜影院久久久| 欧美一区二区在线观看| 精品一区二区三区视频在线观看 | 国产一区二区三区视频在线播放| 久久久电影一区二区三区| 成人午夜免费电影| 亚洲国产乱码最新视频| 日韩一区二区精品| 国产精品538一区二区在线| 成人欧美一区二区三区| 欧美撒尿777hd撒尿| 久久99国产精品成人| 中文字幕一区二区三区不卡在线| 欧美性受极品xxxx喷水| 久久99九九99精品| 中文字幕日本不卡| 欧美精品自拍偷拍| 成人天堂资源www在线| 午夜欧美电影在线观看| 国产午夜亚洲精品理论片色戒| 91在线高清观看| 秋霞影院一区二区| 综合av第一页| 精品成人佐山爱一区二区| 色哟哟一区二区三区| 韩国欧美国产1区| 亚洲精品视频在线观看网站| 精品福利视频一区二区三区| 日本高清不卡在线观看| 精品午夜久久福利影院| 亚洲自拍偷拍av| 国产女主播一区| 欧美电视剧免费全集观看| 色综合色综合色综合色综合色综合| 美日韩一级片在线观看| 亚洲精品国产第一综合99久久| 久久久久久久久久久久久久久99 | 成人app下载| 麻豆精品新av中文字幕| 一区二区三区视频在线看| 久久影院视频免费| 欧美精品1区2区3区| av电影在线观看一区| 国产精品99久久久久久有的能看| 一区二区三区国产精品| 中文字幕不卡在线观看| 精品日产卡一卡二卡麻豆| 欧美伦理电影网| 91极品视觉盛宴| 成人午夜视频在线| 国产成人精品亚洲午夜麻豆| 蜜臀国产一区二区三区在线播放| 亚洲午夜av在线| 亚洲精品第1页| 日韩美女啊v在线免费观看| 久久精品视频免费| 91精品国产91综合久久蜜臀| 欧美中文字幕亚洲一区二区va在线 | 国产一区二区三区电影在线观看| 亚洲高清免费观看| 亚洲综合在线观看视频| 中文字幕一区二区三区精华液| 久久久不卡网国产精品一区| 91精品欧美久久久久久动漫| 欧美日韩免费观看一区二区三区| 色系网站成人免费| 色欧美88888久久久久久影院| 成人黄页毛片网站| 99在线热播精品免费| 成人美女视频在线观看18| 成人白浆超碰人人人人| 成人免费高清在线| 色综合欧美在线视频区| 色婷婷激情一区二区三区| 色综合久久久久综合99| 91官网在线观看| 欧美日韩电影在线播放| 欧美久久一二区| 91麻豆精品国产91久久久使用方法 | 久久精品亚洲麻豆av一区二区| 久久看人人爽人人| 国产精品丝袜久久久久久app| 国产精品国产三级国产普通话99| 日韩一区有码在线| 亚洲老司机在线| 午夜视频在线观看一区| 久久精品国产第一区二区三区| 国产在线国偷精品免费看| 高清不卡一区二区在线| 91在线一区二区三区| 欧美日韩精品三区| 欧美mv日韩mv| 国产精品夫妻自拍| 亚洲韩国精品一区| 久久精品国内一区二区三区| 国产一区二区三区在线观看免费视频 | 日韩久久精品一区| 久久品道一品道久久精品| 国产精品麻豆网站| 亚洲福利视频一区| 国产在线精品一区二区夜色| 成人午夜视频网站| 欧美日韩中文一区| 久久久蜜桃精品| 亚洲自拍偷拍麻豆| 国产凹凸在线观看一区二区| 91美女片黄在线观看91美女| 91麻豆精品久久久久蜜臀| 日本一二三不卡| 亚洲成人av中文| 国产成人自拍网| 欧美性xxxxxx少妇| 国产视频在线观看一区二区三区| 亚洲男人的天堂av| 麻豆91在线看| 色婷婷综合久久久中文一区二区| 日韩女优电影在线观看| 最新热久久免费视频| 蜜桃视频在线一区| 一本大道久久a久久精二百| 精品久久久网站| 亚洲sss视频在线视频| 成人精品免费视频| 日韩一级高清毛片| 亚洲黄色片在线观看| 国产一区二区久久| 91麻豆精品国产自产在线| 中文字幕一区二区三区乱码在线| 久久精品国产在热久久| 在线亚洲+欧美+日本专区| 久久嫩草精品久久久精品| 午夜精品在线看| 日本韩国欧美一区二区三区| 国产三级精品三级在线专区| 美女视频网站久久| 91麻豆精品国产91久久久久久久久| 亚洲男女一区二区三区| 成人av网址在线| 久久久久久久久蜜桃| 久久成人羞羞网站| 91精品国产91久久久久久最新毛片 | 久久机这里只有精品| 欧美精选一区二区| 午夜久久久久久电影| 在线观看日韩电影| 一区二区三区小说| 91在线视频观看| 亚洲色图.com| 91网站在线观看视频| 国产精品久久久久久久久晋中| 成人午夜视频在线| 国产精品乱人伦| 99re6这里只有精品视频在线观看| 国产午夜精品一区二区三区嫩草| 国产真实乱对白精彩久久|