基于stm32 lwip + Telnet 调试打印

本文介绍了如何在STM32上使用LwIP堆栈结合Telnet进行调试打印。通过建立TCP连接,利用Wireshark抓包分析,展示设备与客户端的交互过程。文中提到了用户名和密码校验,并详细说明了如何根据客户端连接状态重定向调试信息到串口或Telnet,同时建议启用TCP keepalive和异常处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:

	玩stm32陆陆续续也有1年半了,从51到linux驱动到stm32发现了不少好玩的东西,应了大家的要求开通了博客,记录一些在stm32上。
	做产品的同学可能已经发现,产品正式出厂后是很少允许拆壳的,但是产品结构上也不会预留串口调试的接口。那么现场环境复杂,如果复现了,是否有办法判断程序跑到什么地方呢?

应用场景:

	通过Putty-Tlenet工具,输入带网络设备IP,可将设备打印信息传输到电脑终端。

前提

笔者是通过stm32f407+lwip 完成,移植lwip后属于纯应用

正文

上电启动后,对各个驱动 init 。 late init 后需要创建 TCP的服务端(port:23 , 当然可根据个人喜好修改)
#define		TELNET_FIRST_PRINT		"/***************************************************************\r\n"\
									" *@ Company : Vicon technology company\r\n"\
									" *@ Author : Doon\r\n"\
									" *@ version : 28-August-2018\r\n"\
									" *@ position : APP\r\n"\
									" *@ Description : You may obtain a copy of the License at : \r\n"\
									" *@ \t\t http://www.vicon-iot.com \r\n"\
									"****************************************************************/\r\n"
struct tcp_server_struct
{
	u8 state;
	char Usr_name[50];
	char Usr_password[50];
	u8 Verf_flag;
	u8 Verf_count;
	struct tcp_pcb *pcb;
	struct pbuf *p;         
};
err_t Telnet_recv(void *arg, struct tcp_pcb *pcb, struct pbuf *p, err_t err)
{
	err_t ret_err;
	unsigned int data_len = 0;
	struct pbuf *q;
	struct tcp_server_struct *es;
	es = (struct tcp_server_struct *)arg;
	MyOS_Node_Def item;
	
	if(p == NULL)
	{
		ret_err = ERR_OK;
		tcp_server_connection_close(pcb,es);
		/*item.Event_Type = OS_EVENT_TELNET_CONNECTED;
		item.data.connected.connected_status = OS_CONN_CLOSE;
		Enqueue(item);*/
		Dbg("Telnet Disconnect");
	}
	else if(err != ERR_OK)
	{
		if(p)
		{
			pbuf_free(p);
		}
		ret_err = err;
		Dbg("err == %d",err);
	}
	
	if(p != NULL)
	{
		memset(Telnet_Recv_Buff,0,TELNET_RECV_BUFF_SIZE);
		
		for(q=p;q!=
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值