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发出去呢 ?? 这种方法不对吗 ???
求高手帮我解答
此帖出自
小平头技术问答
建议你看这个就好了。
一周热门 更多>