97 lines
2.1 KiB
C
Raw Permalink Normal View History

#include "Include.h"
#include "delay.h"
#include "IoControl.h"
#include "Timer.h"
#include "Usart.h"
#include "spi1.h"
#include "w5500.h"
#include "socket.h"
#include "WatchDog.h"
#include "user_queue.h"
uint16_t usRec_Length; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
uint8_t ucRec_Buffer[1024*10]={0}; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݻ<EFBFBD><DDBB><EFBFBD>
extern uint16_t Usart1_ucRx_length;//<2F><><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD>ճ<EFBFBD><D5B3><EFBFBD>
extern uint8_t usart1_rx_done;//<2F><><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɱ<EFBFBD>־
extern uint8_t Usart1_Rx_Buf[USART1_RX_BUFFER_SIZE];//<2F><><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int main(void)
{
parameters_init();
led_init();
Tim2Init();
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
ble_usart_init(BLE_USART_BAUDRATE);
spi1.initialize();
w5500.initialize();
InitQueue(&queue);
WatchDogGpioInit();
WatchDogEnable();
while(1)
{
switch(getSn_SR(0)) //<2F><>ȡsocket0<74><30>״̬
{
case (SOCK_INIT): //TCP<43><50><EFBFBD><EFBFBD>ģʽ
{
listen(0); //<2F><>TCPģʽ<C4A3>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD>
}break;
case (SOCK_ESTABLISHED): //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
if(getSn_IR(0) & Sn_IR_CON)
{
setSn_IR(0, Sn_IR_CON);
}
usRec_Length = getSn_RX_RSR(0); /*<2A>ѽ<EFBFBD><D1BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>*/
if(usRec_Length>0)
{
recv(0, ucRec_Buffer, usRec_Length);
net_received_data_analysis();
// send(0, ucRec_Buffer, usRec_Length); //<2F><><EFBFBD>շ<EFBFBD>
}
}break;
case (SOCK_CLOSE_WAIT):
{
disconnect(0); /*<2A>Ͽ<EFBFBD><CFBF><EFBFBD><EFBFBD><EFBFBD>*/
}break;
case (SOCK_CLOSED):
{
socket(0,Sn_MR_TCP,60000,Sn_MR_ND); /*<2A><><EFBFBD><EFBFBD>socket0<74><30>60000<30>˿<EFBFBD>*/
}break;
default:
break;
}
if((IINCHIP_READ(PHYCFGR)& LINK)==0)
{
disconnect(0);
socket(0,Sn_MR_TCP,60000,Sn_MR_ND); /*<2A><><EFBFBD><EFBFBD>socket0<74><30>60000<30>˿<EFBFBD>*/
listen(0); /*<2A><>TCPģʽ<C4A3>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD>*/
}
if(1 == usart1_rx_done) //<2F><><EFBFBD>ڽ<EFBFBD><DABD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD>ڷ<EFBFBD><DAB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD>
{
usart1_rx_done = 0;
send(0, Usart1_Rx_Buf, Usart1_ucRx_length);
Usart1_ucRx_length = 0;
}
FeedDog();
}
}