利用单片机和ENC28J60实现TCP数据发送,现在有个问题是数据太长,我是存在EEPROM的,直接读取,再发送回有问题,需要将数据分N次读出,然后存到ENC28J60的发送缓冲区,然后再一次性发送出去,我在驱动中试了改几下,不能实现,望有高人指教啊!下面是发送的程序。我是结合uip0.9进行的。
|
ENC28J60 发送缓冲区的写入?
关键词: ENC28J60 发送 缓冲区 写入
1.我在example0.c中的代码,判断如果收到的是'C'那么就会调用一次 uip_send()我看了那个uip_send函数就是把数据、长度这两个的值赋给uip_appdata、以及uip_len。这个时候是如何进行发送的呢?难道是当uip_send函数将数据指针设置后(此时uip_len就大于0了),然后通过uip_periodic()这个来发送数据的?还是另有途径呢?
2.如果我现在想在uip收到数据后,然后发送一串很长的数据,由于受单片机的RAM限制,我只能在网卡驱动函数中修改,在里面不断的读取EEPROM中的数据并送到网卡的缓冲中,当把所需要的数据读取到网卡的缓冲中后,再执行发送命令。这样就可以将数据发送出去了。但是有一个问题,在发送的数据中有IP头、TCP头之类的东东,这些东东放在哪里了?那些里面包含了数据的类型、数据长度等,这个我在哪里修改?我才是在packet里面,packet是uip_buf映射过来的,我分析了下uip_buf的结构发现前40字节好像是头信息,现在就是搞不明白这40字节里面那几个字节是数据长度的信息,希望指点下,这40个字节是如何分布的。我看了IP TCP协议,但是还是没有弄明白啊··
2.如果我现在想在uip收到数据后,然后发送一串很长的数据,由于受单片机的RAM限制,我只能在网卡驱动函数中修改,在里面不断的读取EEPROM中的数据并送到网卡的缓冲中,当把所需要的数据读取到网卡的缓冲中后,再执行发送命令。这样就可以将数据发送出去了。但是有一个问题,在发送的数据中有IP头、TCP头之类的东东,这些东东放在哪里了?那些里面包含了数据的类型、数据长度等,这个我在哪里修改?我才是在packet里面,packet是uip_buf映射过来的,我分析了下uip_buf的结构发现前40字节好像是头信息,现在就是搞不明白这40字节里面那几个字节是数据长度的信息,希望指点下,这40个字节是如何分布的。我看了IP TCP协议,但是还是没有弄明白啊··
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |