自己写的串口转以太网程序遇到问题,求高手帮助 !

2019-03-24 16:16发布

 
   targetInit();
  InitNic();
  uartInit();                                             //  UART初始化
 
  IP4_ADDR(&ipaddr,192,168,14,76);      //远程主机地址
 
    UdpPcb = udp_new();
 
  udp_bind(UdpPcb,IP_ADDR_ANY,4000);   // 绑定本地IP地址
 
  udp_connect(UdpPcb,&ipaddr,5000);    // 连接远程主机
 
//  udp_recv(UdpPcb,UDP_Receive,NULL);   // 设置数据接收时的回调函数
   for(;;)
  {   p = pbuf_alloc(PBUF_RAW,sizeof(UARTCharGet(UART0_BASE)),PBUF_RAM);                                   我就改了红 {MOD}的部分。。。。
  p->payload=(void *)(UARTCharGet(UART0_BASE));
   
                          //而且延时要足够的,否则收不到
  Delay(400000UL);    //一定要加延时,否则可能都没绑定就发数据了,就会收不到
  udp_send(UdpPcb,p);
  pbuf_free(p);   }                   我把UART程序和UDP的程序自己综合了一下,代码如上。 把UART 传来的数据直接给了  p->payload  然后用UDP发送出去。   问题是, 我用TCP/UDP调试助手测试,全部是一位一位的接收的(这个我知道,因为我是接一个发一个)。但是全部都是空信息,或者是乱码。。。 请问是怎么回事呢 ??    我怎样把UART接来的数据通过 UDP发出去呢 ?? 这种方法不对吗 ??? 求高手帮我解答 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
marjolein
1楼-- · 2019-03-24 20:15
< 个人认为是数据格式问题,以前我调试时用过类似TCP/UDP工具,从串口得到的数据也是乱码,后来发现接收工具是将串口的数据直接认为是ASCII,将其显示出来.之后我自己写了只TCP数据接程序将接收的数据做了下处理就OK了.
所以建议你在COM-ethernet程序中加入数据转换后再发送,应该可以解决.
315249858
2楼-- · 2019-03-24 23:00
< :TI_MSP430_内容页_SA7 --> 我遇到的问题就是, 不知道把接收来的数据怎样存入缓冲帧,我刚接触嵌入式, 不太熟悉。。

你能举个例子么。? 把从串口接收来的数据存起来,给UDP
yytdragon
3楼-- · 2019-03-25 02:38
 精彩回答 2  元偷偷看……
15242026
4楼-- · 2019-03-25 03:42
我是直接,建一个数组,当作缓冲区使用。把UDP接收到的数据,存到buffer 中,然后将buffer 通过,uart 接收就可以了
longxtianya
5楼-- · 2019-03-25 06:25
http://bbs.eeworld.com.cn/thread-222963-1-1.html
建议你看这个就好了。

一周热门 更多>

相关问题

    相关文章