查看: 2607|回复: 7

[求助] LPC54608 Lwip --udp 如何往PC端发送数据

[复制链接]

该用户从未签到

61

主题

233

帖子

7

高级会员

Rank: 4

积分
750
最后登录
2021-1-25
发表于 2017-9-27 16:17:36 | 显示全部楼层 |阅读模式
大家好!在看SDK_2.2_LPC54608J512\boards\lpcxpresso54608\demo_apps\lwip\lwip_udpecho这个demo的时候,demo的功能是如何接收上位机发来的数据:ethernetif_input(&fsl_netif0)。现在我想往上位机发数据,按照demo里的思路,应该是参照 ethernetif_input(&fsl_netif0)写一个类似ethernetif_output(&fsl_netif0)的函数。跟踪 ethernetif_input这个函数以及主函数调用的位置
1.netif_add(&fsl_netif0, &fsl_netif0_ipaddr, &fsl_netif0_netmask, &fsl_netif0_gw, NULL, ethernetif_init, ethernet_input);
2.void ethernetif_input(struct netif *netif)
{
    struct pbuf *p;

    LWIP_ASSERT("netif != NULL", (netif != NULL));

    /* move received packet into a new pbuf */
    while ((p = low_level_input(netif)) != NULL)
    {
        /* pass all packets to ethernet_input, which decides what packets it supports */
        if (netif->input(p, netif) != ERR_OK)
        {
            LWIP_DEBUGF(NETIF_DEBUG, ("ethernetif_input: IP input error\n"));
            pbuf_free(p);
            p = NULL;
        }
    }
}

其实是调用了netif->input(p, netif) 这个函数,也就是 netif_input_fn    input。对应的netif这个结构体也有netif_output_fn output这个输出函数。相当于发送数据用该函数即可。
修改主函数中调用位置的时候发现netif_add这个函数的原型是
truct netif *netif_add(struct netif *netif,
#if LWIP_IPV4
          const ip4_addr_t *ipaddr, const ip4_addr_t *netmask, const ip4_addr_t *gw,
#endif /* LWIP_IPV4 */
          void *state, netif_init_fn init, netif_input_fn input)
这里面用的是input  如果我想改为输出output  ,那么参数类型就不对。请问如何修改函数,发送数据??


我知道答案 目前已有7人回答
回复

使用道具 举报

该用户从未签到

4

主题

18

帖子

0

注册会员

Rank: 2

积分
146
最后登录
2018-10-23
发表于 2017-9-29 14:47:48 | 显示全部楼层
同问~~~
回复

使用道具 举报

  • TA的每日心情
    开心
    2018-4-17 08:39
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    33

    主题

    788

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2796
    最后登录
    1970-1-1
    发表于 2018-1-18 15:10:29 | 显示全部楼层
    您的问题解决了么,我也遇到同样的疑惑,谢谢
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    61

    主题

    233

    帖子

    7

    高级会员

    Rank: 4

    积分
    750
    最后登录
    2021-1-25
     楼主| 发表于 2018-1-18 17:39:59 | 显示全部楼层
    qiu-368230 发表于 2018-1-18 15:10
    您的问题解决了么,我也遇到同样的疑惑,谢谢

    你现在也在用54608调试UDP吗
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-4-17 08:39
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    33

    主题

    788

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2796
    最后登录
    1970-1-1
    发表于 2018-1-19 09:09:53 | 显示全部楼层
    paulkiyt 发表于 2018-1-18 17:39
    你现在也在用54608调试UDP吗

    我在调TCP,我觉得可以互相参考
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    61

    主题

    233

    帖子

    7

    高级会员

    Rank: 4

    积分
    750
    最后登录
    2021-1-25
     楼主| 发表于 2018-1-19 09:44:53 | 显示全部楼层
    qiu-368230 发表于 2018-1-19 09:09
    我在调TCP,我觉得可以互相参考

    哦  应该差不多,就是必须要再while里执行  ethernetif_input(&fsl_netif0)这个函数,搞不懂
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5

    主题

    18

    帖子

    1

    注册会员

    Rank: 2

    积分
    104
    最后登录
    2021-7-26
    发表于 2018-7-16 17:54:20 | 显示全部楼层
    我也刚接触这个54608,也要用到UDP,多指教

    回复 支持 反对

    使用道具 举报

    该用户从未签到

    61

    主题

    233

    帖子

    7

    高级会员

    Rank: 4

    积分
    750
    最后登录
    2021-1-25
     楼主| 发表于 2018-7-30 10:13:30 | 显示全部楼层
    liaogf 发表于 2018-7-16 17:54
    我也刚接触这个54608,也要用到UDP,多指教

    一起讨论
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

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

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-5-9 14:58 , Processed in 0.147675 second(s), 30 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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