发 帖  
原厂入驻New
[问答] LWIP发送数据如何转换?
99 LwIP adc 数据
分享
按照原子例程,已经实现了通讯。但是还要问题没有解决。
我做得是采集ADC信号,通过网线发出来。
领导希望发出来的是10进制的数据,比如2.5V发出来的数据就是2.5,我把采集的数据x100得到的数据取整,我用一节干电池发出来的就是91,实际上这个数据是16进制的,转换过来就是145,那么这个电压就是1.45V。float *tcp_server_sendbuf=&adcbuf;
我做了如下尝试      temp=(float)adcx*(3.3/4096);     sprintf(adcbuf,"%f",temp);  把temp的值转化成字符串,然后char *tcp_server_sendbuf=&adcbuf;
失败!!!  
完全没有数据发出了。
然后我有尝试        建一个数组adcbuf[3] 比如1.45V  把1存入adcbuf[0], 把4存入adcbuf[1],把5存入adcbuf[2]。然后u16 *tcp_server_sendbuf=adcbuf;
失败,没有数据发出。
不知道哪里出了问题,请大家路过的给我一些指点。
0
2019-9-12 02:27:42   评论 分享淘帖 邀请回答

相关问题

8个回答
char *tcp_server_sendbuf=&adcbuf;直接这样就完了?后面还有代码哦,要写入发送长度等信息
2019-9-12 07:26:42 评论

举报

这个地方我承认偷懒了。原子哥的例程是u8 *tcp_server_sendbuf=“STM32F407”;今天正好在看,这个地方了,我应该定义一个TCP服务器发送数据缓冲区,定义发送的数据的大小,长度,然后再发送。一会尝试一下。
2019-9-12 07:44:41 评论

举报

adcx=Get_Adc_Average(ADC_Channel_5,20);        adcx是MCU得到的电压值
temp=(float)adcx*(3.3/4096);                                temp是计算后得到实际电压值  比如3.111
sprintf((char*)adcbuf,"%.2f",temp);                        调用函数sprintf 把float 的temp的值给adcbuf[],
memcpy(tcp_server_sendbuf,adcbuf,strlen(adcbuf));调用函数memcpy 把adcbuf[]的值拷贝给tcp_server_sendbuf   
temp有值,但是adcbuf[]没有值,然后tcp_server_sendbuf也没有值
如果我直接拷贝memcpy(tcp_server_sendbuf,&temp,4)  tcp_server_sendbuf所有的数据也是0
2019-9-12 08:01:58 评论

举报

发送函数
        if((tcp_server_flag & LWIP_SEND_DATA) == LWIP_SEND_DATA)
                                {
                                        err = netconn_write(newconn ,tcp_server_sendbuf,strlen((char*)tcp_server_sendbuf),NETCONN_COPY);
                                memset(tcp_server_sendbuf,0,TCP_SERVER_TX_BUFSIZE);  发送缓存区清0
                                        tcp_server_flag &= ~LWIP_SEND_DATA;
                                }
2019-9-12 08:13:49 评论

举报

你直接printf出来,看看你要发送的数据对不对
2019-9-12 08:19:49 评论

举报

尝试过了,也在论坛看了其他的帖子,在UCOS里面sprintf是有问题的,有时候就会进入中断,很多坛友都说了类似问题,会莫名其妙的进入一个中断函数死循环出不来,别人说的方法都试过了,还是出不来。比如8字对齐,%lf,都不行。
8字节对齐,不行,那就16字节,或者32字节对齐
2019-9-12 08:49:17 评论

举报

只有小组成员才能发言,加入小组>>

44个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /10 下一条

快速回复 返回顶部 返回列表