各位大侠们,我刚接触
STM32不太久,LWIP协议栈更没仔细研究过,我现在在做基于STM32和LWIP的网页控制,我现在想在程序里加一个DHT11传感器,检测温湿度,想把检测到的温湿度传到网页上显示出来,但我只能显示一些常数例如:
uint8_t tem_hum[] ="HELLO";通过 tcp_write(
PCB,tem_hum,sizeof(tem_hum),0);这个函数就能在网页上显示HELLO
uint8_t led_ctrl_on[] =LED_CTRL_ON;;通过 tcp_write(pcb,led_ctrl_on,sizeof(led_ctrl_on),0); 就能显示#define LED_CTRL_ON "定义的网页部分
我现在想在网页上显示通过DHT11传感器读回来的tem,hum;温湿度值,怎么写程序,是不是只通过改写tcp_write函数不能实现这一功能,是否还需要借助别的函数,就大神赐教了,我都愁死了,老师还催的很紧,我还不知道去从那下手
,如果哪位大神有实现了这个小小功能的程序,能否分享给我一份,拜托了
下面是tcp_write函数的定义
tcp_write(struct tcp_pcb *pcb, void*data, u16_t len, u8_t apiflags)
//pcb:只想相应连接的控制块
//data:待发送数据的起始地址
//len:待发送数据的长度
//apiflags:数据是否进行拷贝
{
LWIP_DEBUGF(TCP_OUTPUT_DEBUG, ("tcp_write(pcb=%p, data=%p, len=%"U16_F", apiflags=%"U16_F")
", (void *)pcb,
data, len, (u16_t)apiflags));
/* connec
tion is in valid state for data transmission? */
if (pcb->state == ESTABLISHED ||
pcb->state == CLOSE_WAIT ||
pcb->state == SYN_SENT ||
pcb->state == SYN_RCVD) {
if (len > 0) {
#if LWIP_TCP_TIMESTAMPS
return tcp_enqueue(pcb, (void *)data, len, 0, apiflags,
pcb->flags & TF_TIMESTAMP ? TF_SEG_OPTS_TS : 0);
#else
return tcp_enqueue(pcb, (void *)data, len, 0, apiflags, 0);
#endif
}
return ERR_OK;
} else {
LWIP_DEBUGF(TCP_OUTPUT_DEBUG | LWIP_DBG_STATE | LWIP_DBG_LEVEL_SEVERE, ("tcp_write() called in invalid state
"));
return ERR_CONN;
}
}
一周热门 更多>