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

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

?? demo.c.bak

?? w5100 范例程序 經典應用
?? BAK
?? 第 1 頁 / 共 2 頁
字號:
				else
				{
					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国产精品| 欧美日韩一区二区在线观看视频 | 97se亚洲国产综合自在线观| 国产欧美日韩精品a在线观看| 国产suv精品一区二区6| 国产精品福利在线播放| 91老师片黄在线观看| 亚洲一二三区在线观看| 在线不卡免费av| 国产一区91精品张津瑜| 国产精品剧情在线亚洲| 欧美图区在线视频| 精品一区二区三区在线观看| 91精品免费在线| 日韩国产精品91| 国产偷国产偷精品高清尤物| 99re这里只有精品6| 亚洲成人av在线电影| 精品国产电影一区二区| 99久久久免费精品国产一区二区| 亚洲国产一区在线观看| 欧美精品一区男女天堂| www.一区二区| 日韩中文欧美在线| 国产精品天干天干在观线| 欧美视频一区二区在线观看| 国产一区二区毛片| 一区二区三区在线高清| 日韩免费高清视频| kk眼镜猥琐国模调教系列一区二区| 玉米视频成人免费看| 337p粉嫩大胆色噜噜噜噜亚洲| 91麻豆高清视频| 久久精品噜噜噜成人88aⅴ| 日韩一区日韩二区| 欧美电影免费观看高清完整版 | 成人欧美一区二区三区黑人麻豆| 91国偷自产一区二区开放时间| 久久电影网站中文字幕| 亚洲男同1069视频| 精品成人一区二区三区四区| 在线免费观看日韩欧美| 成人手机在线视频| 奇米影视在线99精品| 1区2区3区精品视频| 久久综合中文字幕| 欧美日韩一区 二区 三区 久久精品| 国产露脸91国语对白| 亚洲国产一区视频| 亚洲欧美日韩电影| 国产片一区二区三区| 91精品国产91久久久久久最新毛片 | 国产精品超碰97尤物18| 欧美sm极限捆绑bd| 欧美久久一二三四区| 色视频一区二区| 懂色av噜噜一区二区三区av| 美女高潮久久久| 日韩黄色片在线观看| 亚洲乱码日产精品bd| 欧美国产在线观看| 国产欧美视频在线观看| 精品电影一区二区| 精品福利一二区| 91麻豆精品国产91久久久久久久久| 色欧美日韩亚洲| 波多野结衣精品在线| 成人丝袜视频网| 国产精品中文字幕欧美| 国产一区二区中文字幕| 国产在线不卡一区| 国产在线播放一区二区三区| 国内精品伊人久久久久影院对白| 免费成人性网站| 青青草97国产精品免费观看| 日韩不卡在线观看日韩不卡视频| 午夜视频一区二区| 午夜激情综合网| 日韩av在线发布| 日本成人中文字幕在线视频| 美女网站在线免费欧美精品| 免费在线观看成人| 开心九九激情九九欧美日韩精美视频电影 | 日韩**一区毛片| 久久久久久久一区| 欧美一级午夜免费电影| 91精品国产色综合久久不卡电影| 制服丝袜中文字幕一区| 欧美一级二级三级乱码| 欧美tickling挠脚心丨vk| 久久久99久久| 亚洲三级久久久| 亚洲午夜一区二区| 五月婷婷综合在线| 久久精品国产77777蜜臀| 国产在线视视频有精品| 成人性生交大片| 91视视频在线直接观看在线看网页在线看| www.亚洲色图| 欧美日韩一区二区在线视频| 日韩欧美成人一区二区| 久久久精品综合| 综合自拍亚洲综合图不卡区| 亚洲图片欧美综合| 国产成人一区二区精品非洲| 成人av高清在线| 欧美亚男人的天堂| 精品欧美黑人一区二区三区| 国产精品视频一二| 欧美在线free| 欧美精品日日鲁夜夜添| 精品国产一区二区精华 | 久久99国内精品| 欧美吞精做爰啪啪高潮| 亚洲品质自拍视频| 成人丝袜高跟foot| 久久久久99精品一区| 美美哒免费高清在线观看视频一区二区| 欧美喷潮久久久xxxxx| 欧美视频一区二区三区| 成人污视频在线观看| 国产乱码精品一品二品| 欧美在线看片a免费观看| 日韩一区二区三区精品视频| 中文字幕第一区二区| 天堂va蜜桃一区二区三区| 成人app在线| 欧美一区二区三区四区五区| 亚洲图片你懂的| 2024国产精品| 久久网站热最新地址| 亚洲一区二区精品久久av| 国产精品羞羞答答xxdd| 91 com成人网| 亚洲日本va午夜在线电影| 激情六月婷婷久久| 在线视频中文字幕一区二区| 国产亚洲精品久| 毛片av一区二区| 欧美日韩国产一级片| 国产精品激情偷乱一区二区∴| 久久国产成人午夜av影院| 欧美最猛黑人xxxxx猛交| 亚洲欧美综合色| 福利一区在线观看| 久久久久9999亚洲精品| 麻豆精品一区二区综合av| 欧美剧情电影在线观看完整版免费励志电影 | 精品一二三四区| 欧美肥妇bbw| 夜夜嗨av一区二区三区中文字幕| 波多野洁衣一区| 日本一区二区三区电影| 国内精品第一页| 日韩精品在线一区二区| 香蕉av福利精品导航| 欧美视频在线播放| 亚洲精品成人在线| 91看片淫黄大片一级| 国产精品久久久久一区二区三区 | 国产精品视频在线看| 国产一区欧美二区| 精品国产一区二区三区av性色 | 欧美一区二区在线播放| 亚洲精品美国一| 欧美亚洲综合一区| 一区二区三区四区不卡视频| 91色视频在线| 伊人一区二区三区| 日本高清免费不卡视频| 亚洲一线二线三线视频| 欧美午夜精品电影| 日韩在线观看一区二区| 91精品国产黑色紧身裤美女| 免费成人av资源网| 欧美精品一区二区三区蜜桃视频| 国产在线视频精品一区| 久久精品欧美日韩精品| 成人av网在线| 一区av在线播放| 91精品免费在线| 国产美女精品人人做人人爽| 国产精品女同互慰在线看| 91在线国产福利| 一级女性全黄久久生活片免费| 欧美视频在线观看一区| 免费xxxx性欧美18vr| 国产视频一区二区在线观看| av激情综合网| 五月天一区二区| 久久综合国产精品| jlzzjlzz亚洲女人18| 亚洲h精品动漫在线观看| 91精品国产综合久久精品图片 | 美美哒免费高清在线观看视频一区二区| 日韩亚洲欧美综合| 成人国产精品免费网站| 亚洲福利一二三区| www激情久久| 97精品久久久久中文字幕|