g0b1vetx-board/Board/network/dtu2-board.c
2023-05-19 18:02:00 +08:00

102 lines
1.9 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include "main.h"
#include "os-app.h"
#include <stdio.h>
#include <rtthread.h>
#include <string.h>
#include "usart-board.h"
#if !defined(LOG_TAG)
#define LOG_TAG "dtu2"
#endif
#include <elog.h>
ALIGN (RT_ALIGN_SIZE)
static char thread_stack[2048];
static struct rt_thread dtu2_thread;
static enum
{
netDrvInit = 0, // 初始化网络驱动
netDrvJoin = 1, // 等待网络注册成功
netDrvSend = 2, // 发送数据
netDrvRecv = 3, // 读取数据
netDrvIdle = 4, // 读取数据
} eDrvStatus;
static void net_data_rxdone(void)
{
rt_event_send(gUartEvents,EVENT_UART_ETH2_RX);
//rt_kprintf("net_data_rxdone\r\n");
}
static void thread_entry (void * argument)
{
// eDrvStatus = netDrvInit;
rt_kprintf ("%s was start!\r\n", __FILE__);
g_ETH2Drv.rxdone = net_data_rxdone;
MX_UART_Init(&g_ETH2Drv);
// // 注册网络驱动
// 注册网络驱动
while (1)
{
//MX_UART_PutBuffer(&g_ETH1Drv,"20140524",8);
if( RT_EOK == rt_event_recv( gUartEvents, EVENT_UART_ETH1_RX,RT_EVENT_FLAG_AND | RT_EVENT_FLAG_CLEAR, RT_WAITING_NO, RT_NULL ))
{
rt_kprintf("<<<<<<<<<<<<<<<<<<<<rx1:\r\n");
for(int i =0; i < g_ETH1Drv.rx_size;i++)
{
rt_kprintf("%02X ",g_ETH1Drv.rx_buffer[i]);
}
rt_kprintf("\r\n");
MX_UART_Clear(&g_ETH1Drv);
}
if( RT_EOK == rt_event_recv( gUartEvents, EVENT_UART_ETH2_RX,RT_EVENT_FLAG_AND | RT_EVENT_FLAG_CLEAR, RT_WAITING_NO, RT_NULL ))
{
rt_kprintf("<<<<<<<<<<<<<<<<<<<<rx2:\r\n");
for(int i =0; i < g_ETH2Drv.rx_size;i++)
{
rt_kprintf("%02X ",g_ETH2Drv.rx_buffer[i]);
}
rt_kprintf("\r\n");
MX_UART_Clear(&g_ETH2Drv);
}
rt_thread_delay (100);
}
}
void DTU2ThreadStart (void)
{
/* 创建线程1名称是thread1入口是thread1_entry*/
rt_thread_init (&dtu2_thread, "dtu2_thread",
thread_entry, RT_NULL,
&thread_stack[0],
sizeof (thread_stack),
DTU2_THREAD_PRIORITY, DTU2_THREAD_TIMESLICE);
rt_thread_startup (&dtu2_thread);
return ;
}