#include "main.h" #include "os-app.h" #include #include #include #include "usart-board.h" #include #include "transport.h" #include "netdrv.h" #if !defined(LOG_TAG) #define LOG_TAG "dtu" #endif #include ALIGN (RT_ALIGN_SIZE) static char thread_stack[2048]; static struct rt_thread dtu_thread; static char tx_buffer[512]; static char rx_buffer[512]; netDrv_t g_dtuDrv = { 0, // 信号值 "", // iccid Init, // 状态 tx_buffer, // 接受缓存 0, // 接受数据长度 rx_buffer, // 发送数据缓存 0, // 发送数据长度 }; static void net_data_rxdone (void) { rt_event_send (gUartEvents, EVENT_UART_ETH1_RX); //rt_kprintf("net_data_rxdone\r\n"); } static void thread_entry (void * argument) { rt_kprintf ("%s was start!\r\n", __FILE__); g_ETH1Drv.rxdone = net_data_rxdone; // MX_UART_Init(&g_ETH1Drv); while (1) { MODE_RST: g_dtuDrv.State = Init; MX_UART_Init (&g_ETH1Drv); HAL_GPIO_WritePin (ETH_RST_GPIO_Port, ETH_RST_Pin, GPIO_PIN_RESET); rt_thread_mdelay (1000); HAL_GPIO_WritePin (ETH_RST_GPIO_Port, ETH_RST_Pin, GPIO_PIN_SET); rt_thread_mdelay (1000); HAL_GPIO_WritePin (GPIOA, ETH_PW_Pin, GPIO_PIN_SET); rt_thread_mdelay (8000); g_dtuDrv.State = Conn; while (1) // 判断是否链接成功 { // 准备要上报数据 if (RT_EOK == rt_event_recv (gTrigEvents, EVENT_TRIG_NETMODE_TX1, RT_EVENT_FLAG_AND | RT_EVENT_FLAG_CLEAR, RT_WAITING_NO, RT_NULL)) // { //rt_kprintf("MODE_RST\r\n"); MX_UART_PutBuffer (&g_ETH1Drv, g_dtuDrv.txbuff, g_dtuDrv.tx_size); // rt_kprintf("tx\r\n"); // for(int i =0; i