通过UART0实现数据透传,将UART0的RX数据通过TCP传输到指定IP,将接受到其他sta发送的TCP数据,通过URAT0的TX打印出来。
开发环境:win10+官方提供VirtualBox和OVA镜像
编辑工具:source insight3.5
一、串口数据TCP透传
上一篇中用的是任务模式,但是有一个问题就是会一直阻塞到串口那里,其他任务无法正常运行,所以这次使用串口中断实现透传。在中断中无法直接使用socket发送数据,这里实现的在中断中开辟一个新任务,任务简单执行一个write即可,代码如下:
void socket_TCP_send( void * pvParameters )
{
ETS_UART_INTR_DISABLE();
//print_data(pvParameters);
write(sock_fd, pvParameters, strlen(pvParameters));
memset(TC_data,0,sizeof(TC_data));
ETS_UART_INTR_ENABLE();
vTaskDelete(NULL);
}
在SDK源码中的串口中断函数里是将接受到的数据原封不动的通过UART0的TX打印出来,接受一个打印一个,这里需要将接受到的数据装到