搜索
bottom↓
回复: 42

UCOS II/Rtthread/裸机+lwip WEB服务器搭建

  [复制链接]

出0入0汤圆

发表于 2014-6-11 08:50:18 | 显示全部楼层 |阅读模式
本帖最后由 jeansonm 于 2014-6-11 14:34 编辑

本次使用宝马LPC1768作为实验平台,方便各位在不同软件平台下测试使用网络,希望对于想要把lwip移植到stm32或其他平台的朋友有帮助哦。下面是我整理的三种平台下的网络AD检测例程



下面是开发板直接与电脑连接打开后显示的网页信息,每隔1s自动刷新一次

接着通过设置路由器使用外网对开发板进行访问,进入路由器设置界面,添加转发规则,即当外网访问时转入到192.168.1.191,外网IP可以直接通过百度输入“外网IP”查询到本机IP地址

设置完成之后将开发板连接到路由器,由于电脑都是使用公司的无线网,就用手机来做测试,当然手机的wifi也要关闭,用自己的流量来访问,下面是测试现象,测试完成后就抓紧时间关掉手机网络吧

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

阿莫论坛才是最爱国的,关心国家的经济、社会的发展、担心国家被别国牵连卷入战争、知道珍惜来之不易的和平发展,知道师夷之长,关注世界的先进文化与技术,也探讨中国文化的博大精深,也懂得警惕民粹主义的祸国殃民等等等等,无不是爱国忧民的表现。(坛友:tianxian)

出0入0汤圆

发表于 2014-6-11 09:02:59 | 显示全部楼层
公司服务器归IT管,IP映射搞不了。
另,这也费不了啥流量,又没有有图啥的。

出0入0汤圆

发表于 2014-6-11 12:35:58 | 显示全部楼层
楼主分享的东西很不错的,我看到论坛里也有一些类似的开发板的,都是弄个web看AD值,
如果是学习lwip之类的网络协议,弄个以太网和串口双向传输数据的例子会更直观的学习,
我觉得这样会更方便买开发板的人学习,但是目前还没看到这么做的哈

出0入0汤圆

 楼主| 发表于 2014-6-11 13:03:51 | 显示全部楼层
gerbansh520 发表于 2014-6-11 12:35
楼主分享的东西很不错的,我看到论坛里也有一些类似的开发板的,都是弄个web看AD值,
如果是学习lwip之类的 ...

好的  谢谢你的建议,我也正打算做串口转网络传输

出0入4汤圆

发表于 2014-6-11 14:19:01 | 显示全部楼层
可以动态刷新么?

出0入0汤圆

发表于 2014-6-11 14:34:17 | 显示全部楼层
学习学习

出0入0汤圆

 楼主| 发表于 2014-6-11 14:36:07 | 显示全部楼层
dadian 发表于 2014-6-11 14:19
可以动态刷新么?

每隔1s刷新一次的,可以通过修改网页文件来个i改变刷新时间

出0入0汤圆

发表于 2014-6-11 16:04:27 | 显示全部楼层
学习一下

出0入0汤圆

发表于 2014-6-11 19:49:26 | 显示全部楼层
我是来点赞的

出0入0汤圆

发表于 2014-6-11 22:10:03 | 显示全部楼层
学习,移植到stm难么?

出0入0汤圆

 楼主| 发表于 2014-6-11 22:38:54 | 显示全部楼层
mypear 发表于 2014-6-11 22:10
学习,移植到stm难么?

你是stm32什么平台,我这边有一些做好的stm32 下的lwip例程,有需要可以联系我

出0入0汤圆

 楼主| 发表于 2014-6-12 10:56:08 | 显示全部楼层
gerbansh520 发表于 2014-6-11 12:35
楼主分享的东西很不错的,我看到论坛里也有一些类似的开发板的,都是弄个web看AD值,
如果是学习lwip之类的 ...

简单的串口转网络双向传输
http://www.amobbs.com/thread-5584300-1-1.html
(出处: amoBBS 阿莫电子论坛)

出0入4汤圆

发表于 2014-6-12 20:01:16 | 显示全部楼层
UCOS II/Rtthread/裸机+lwip WEB服务器搭建

出0入0汤圆

发表于 2014-6-13 16:20:44 | 显示全部楼层
虽然不是stm32的,必须支持一个。

出0入0汤圆

发表于 2014-6-17 15:25:06 | 显示全部楼层
学习了,谢楼主

出0入0汤圆

发表于 2014-6-18 21:22:27 | 显示全部楼层
jeansonm 发表于 2014-6-11 22:38
你是stm32什么平台,我这边有一些做好的stm32 下的lwip例程,有需要可以联系我 ...

我的是 STM32F207VGT6 + DP83848CVV + uCOSIIv2.92

麻烦提供下例程测试

出0入0汤圆

 楼主| 发表于 2014-6-18 21:35:30 | 显示全部楼层
闷鱼 发表于 2014-6-18 21:22
我的是 STM32F207VGT6 + DP83848CVV + uCOSIIv2.92

麻烦提供下例程测试

f207有Freertos下的网络例程,如果需要可以进入下面链接进行下载
http://bbs.eeworld.com.cn/thread-430704-1-1.html

出0入0汤圆

发表于 2014-6-19 10:12:39 | 显示全部楼层
mark  mark  mark

出0入0汤圆

发表于 2014-6-19 15:46:51 | 显示全部楼层
赞,正在做类似的东西

出0入0汤圆

 楼主| 发表于 2014-6-19 15:58:26 | 显示全部楼层
huangxuankui 发表于 2014-6-13 16:20
虽然不是stm32的,必须支持一个。

这里有一些STM32平台下的网络例程,希望对你有帮助
SMT32 LPC1768 LWIP例程...
http://bbs.eeworld.com.cn/forum. ... &fromuid=487728

出0入0汤圆

发表于 2014-6-20 10:43:58 | 显示全部楼层
楼主加QQ交流学习心得

出0入0汤圆

发表于 2014-6-20 16:22:36 | 显示全部楼层
这个非常有借鉴意义!

出0入0汤圆

 楼主| 发表于 2014-6-26 09:20:56 | 显示全部楼层
heitu103 发表于 2014-6-20 10:43
楼主加QQ交流学习心得

有兴趣可以加入QQ群讨论 260212453

出0入0汤圆

发表于 2014-6-26 09:24:03 | 显示全部楼层
不错,,,

出0入0汤圆

发表于 2014-6-27 14:16:24 | 显示全部楼层
jeansonm 发表于 2014-6-26 09:20
有兴趣可以加入QQ群讨论 260212453

已加,感谢

出0入0汤圆

发表于 2014-7-18 15:24:56 | 显示全部楼层
MARK!!

出0入0汤圆

发表于 2014-7-18 15:31:02 | 显示全部楼层
楼主很给力!

出0入0汤圆

发表于 2014-8-11 16:21:37 | 显示全部楼层
宝马1768的网络PHY用什么型号?

出0入0汤圆

 楼主| 发表于 2014-8-11 18:33:15 | 显示全部楼层
kakaarm 发表于 2014-8-11 16:21
宝马1768的网络PHY用什么型号?

DP83848   

出0入0汤圆

发表于 2014-8-18 11:09:33 | 显示全部楼层
mark,对于外网访问挺感兴趣的

出0入0汤圆

发表于 2014-8-19 14:37:12 | 显示全部楼层
楼主,请问有没有网络学习的视频链接推荐?

出0入0汤圆

发表于 2014-8-19 22:07:36 | 显示全部楼层
mark下,UCOS II/Rtthread/裸机+lwip WEB服务器搭建

出0入0汤圆

发表于 2014-11-6 13:56:49 | 显示全部楼层
楼主你好

我参考你的:宝马LPC1768 LWIP裸机网页AD检测.rar (715.32 KB, 下载次数: 115)

文件移植了lwip1.4.1,现在有问题请教一下:

low_level_output函数调用ethernet_send向网卡发送数据,但是ethernet_send调用EMAC_WritePacketBuffer函数把发发送的数据放到了Tx_Desc缓存中,

这个缓存中的数据是谁,在哪里,怎么调用把数据发送到phy上的呢?


  1. void EMAC_WritePacketBuffer(EMAC_PACKETBUF_Type *pDataStruct)
  2. {
  3.   uint32_t idx,len;
  4.   uint32_t *sp,*dp;

  5.   idx = LPC_EMAC->TxProduceIndex;
  6.   sp  = (uint32_t *)pDataStruct->pbDataBuf;
  7.   dp  = (uint32_t *)Tx_Desc[idx].Packet;
  8.   /* Copy frame data to EMAC packet buffers. */
  9.   for (len = (pDataStruct->ulDataLen + 3) >> 2; len; len--)
  10.   {
  11.     *dp++ = *sp++;
  12.   }
  13.   Tx_Desc[idx].Ctrl = (pDataStruct->ulDataLen - 1) | (EMAC_TCTRL_INT | EMAC_TCTRL_LAST);//===============这个数据在哪里被发送到phy上了呢?????????
  14. }



  15. int8_t ethernet_send(void *pPacket, uint16_t size)
  16. {
  17.         EMAC_PACKETBUF_Type TxPack;

  18.         /* Check size */
  19.         if(size == 0)
  20.         {
  21.                 return 1;
  22.         }

  23.         /* check Tx Slot is available */
  24.         if (EMAC_CheckTransmitIndex() == FALSE)
  25.         {
  26.                 return -1;
  27.         }

  28.         size = MIN(size,EMAC_MAX_PACKET_SIZE);

  29.         /* Setup Tx Packet buffer */
  30.         TxPack.ulDataLen = size;
  31.         TxPack.pbDataBuf = (uint32_t *)pPacket;
  32.         EMAC_WritePacketBuffer(&TxPack);
  33.         EMAC_UpdateTxProduceIndex();

  34.         return 0;
  35. }

  36. static err_t
  37. low_level_output(struct netif *netif, struct pbuf *p)
  38. {
  39.   //struct ethernetif *ethernetif = netif->state;
  40.   struct pbuf *q;
  41.   u32_t len = 0;

  42.   //initiate transfer();
  43.   SYS_ARCH_DECL_PROTECT(sr);
  44.   /* Interrupts are disabled through this whole thing to support multi-threading
  45.      transmit calls. Also this function might be called from an ISR. */
  46.   SYS_ARCH_PROTECT(sr);

  47. #if ETH_PAD_SIZE
  48.   pbuf_header(p, -ETH_PAD_SIZE); /* drop the padding word */
  49. #endif

  50.   for(q = p; q != NULL; q = q->next)
  51.   {
  52.     /* Send the data from the pbuf to the interface, one pbuf at a
  53.        time. The size of the data in each pbuf is kept in the ->len
  54.        variable. */
  55.     //send data from(q->payload, q->len);

  56.     memcpy((u8_t*)&gTxBuf[len], q->payload, q->len);
  57.     len = len + q->len;
  58.   }

  59.   //signal that packet should be sent();
  60.   ethernet_send(gTxBuf, len);

  61. #if ETH_PAD_SIZE
  62.   pbuf_header(p, ETH_PAD_SIZE); /* reclaim the padding word */
  63. #endif

  64.   LINK_STATS_INC(link.xmit);

  65.   SYS_ARCH_UNPROTECT(sr);
  66.   return ERR_OK;
  67. }
复制代码

出0入0汤圆

发表于 2014-11-6 14:43:54 | 显示全部楼层
非常好的资料,下载备用

出0入0汤圆

发表于 2014-11-6 15:07:01 | 显示全部楼层
mark  收藏备用

出0入0汤圆

发表于 2014-11-6 15:08:01 | 显示全部楼层
mark 要分

出0入0汤圆

发表于 2014-11-22 14:42:20 | 显示全部楼层
好强悍啊!学习了!!

出0入0汤圆

发表于 2015-9-21 17:12:13 | 显示全部楼层
mark      

出0入0汤圆

发表于 2015-9-22 22:11:04 | 显示全部楼层
好东西!

出0入0汤圆

发表于 2015-11-9 16:39:44 | 显示全部楼层
双“11”,选购开发板送迷你仿真器!
好友一起购买任何一块好玩的开发板,免费送学习教材书哟!
活动期间全场免费包邮!
这里一定有您喜欢的电子产品,让您一次爽个够!http://openmcu.taobao.com

出0入0汤圆

发表于 2016-1-25 15:13:06 | 显示全部楼层
只有显示,网页能控制开发板上的led么

出0入0汤圆

发表于 2016-1-25 18:15:56 | 显示全部楼层
学习了,谢楼主!!!

出0入0汤圆

发表于 2017-11-7 17:20:33 | 显示全部楼层
物联网板:MCU+Zigbee,MCU+ESP8266,Zigbee和ESP8266使用串口与MCU通信,ESP8266负责跟服务器通信,Zigbee负责与插座节点通信。使用上位机软件远程控制插座节点。
物联网板链接:http://pan.baidu.com/s/1jIim8Nc 密码:hbze
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-17 05:01

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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