//=====================================================================
//TITLE:
//    STM32F207核心版的LwIP例程的心得
//AUTHOR:
//    norains
//DATE:
//    Friday  01-July-2011
//Environment:
//    Keil MDK 4.2
//    STM32F207
//=====================================================================

最近拿了片STM32F207的核心版,上面有以太网的芯片,可以联网;而之前所工作的领域均没有涉及网络方面,所以在使用上遇上了不少麻烦,特别是例程也没有很正常跑起来。以下的记录,均是在调试例程时的一些记录,有点支离破碎不成体系,各位读者权当笔记来看好了。

1. IP地址

例程默认的是采用自动分配IP地址的DHCP方式。如果大家的路由器无法查看到主机列表的话,那么这个分配方式就会比如郁闷。因为仅仅是使用核心版,是无法知道当前的IP地址的,除非你接了LCD来进行显示。
  
   如果要更改其分配方式,可以打开lwipopts.h文件,将LWIP_DHCP的宏定义更改为0,如:
/* ---------- DHCP options ---------- */ /* Define LWIP_DHCP to 1 if you want DHCP configuration of interfaces. DHCP is not implemented in lwIP 0.5.1, however, so turning this on does currently not work. */ #define LWIP_DHCP 0 
   
   将LWIP_DHCP设置为0后,就需要手动设置IP地址了。相应的数值,可以查看netconf.c文件,如:
IP4_ADDR(&ipaddr, 192, 168, 0, 8); IP4_ADDR(&netmask, 255, 255, 255, 0); IP4_ADDR(&gw, 192, 168, 0, 1); 
   
   这里将IP地址设置为192.168.0.8,掩码为255.255.255.0,网关则是192.168.0.1。如果各位对这些地址有所异议,也可以手动修改。
  
   在这里顺便再说一下主机的IP地址设定。大家都知道,如果局域网的网段不一样的话,是无法通信的;而又由于某些原因,使得主机的IP地址不能和开发板处于同一网段。遇到这种情形,直接修改核心版的IP地址自然是可以的,但我们还可以采用另外一种方法。
  
   首先TCP/IP属性中,我们固定一个IP地址,如图:
  
   
   点击"高级",可以添加多个IP地址,如图:
  
   
   这样就能够和核心版同一网段,也能够正常通信了。
  
  
2. RMII

所拿到的核心是STM32F107和STM32F207共用的,但因为引脚问题,使用STM32F207是不能使用MII,必须采用RMII。如果要更改这个模式,必须打开stm32f2x7.c文件,将MII_MODE宏去掉,并且定义相应的RMII_MODE,如:
#define RMII_MODE // RMII mode for STM3220F-EVAL Board (MB786) (check jumpers setting) // for RMII mode you have to set the system clock frequency to 100MHz // you can do this in system_stm32f2xx.c file //#define MII_MODE /* MII mode for STM3220F-EVAL Board (MB786) (check jumpers setting) */ 
   
   如果这里执意使用的是MII_MODE会是什么结果呢?结果便是无法跳出该循环语句:
/* Wait for software reset */ while (ETH_GetSoftwareResetStatus() == SET); 
   
   因为会检测到一直是SET状态,没有RESET,代码会一直循环。
  
  
3. PLL_N

如果使用了RMII模式,那么必须要将system_stm32f2xx.c的PLL_N定义由原来的240更改为200,如:
   #define PLL_N      200 //norains:If you want to use RMII,it must set 200 here.Others you could set 240
  
   假如不进行更改的话,那么下面这段main.cpp文件的main函数循环代码会出问题:
while(ETH_GetRxPktSize() != 0) { LwIP_Pkt_Handle(); } 
   
   简单点来说,是ETH_GetRxPktSize函数永远返回为0,无法接收到数据。

4. 测试

当一切都准备就绪之后,可以将核心版连接到路由器中,然后在命令行界面输入ping就能够检测到设备,如图:
  

STM32F207核心版的LwIP例程的心得相关推荐

  1. 学习Windows2008——常用工具及命令(包括核心版部分命令)

    2019独角兽企业重金招聘Python工程师标准>>> 常用工具: 系统兼容性检测:http://technet.microsoft.com/en-us/windowsvista/a ...

  2. 【转载】如何从win8/8.1中文版(核心版)升级到win8/8.1专业版

    最近帮助很多同学从win8/8.1的基础版本 - 中文版(核心版)升级到了专业版,经过咨询,升级系统的最主要原因是中文版(核心版)的功能限制,因为基础版本阉割掉了很多常用的功能,比如组策略,计算机管理 ...

  3. Rasa课程、Rasa培训、Rasa面试、Rasa实战系列之Gavin大咖免费公益课程Rasa Paper论文解析核心版

    Rasa课程.Rasa培训.Rasa面试.Rasa实战系列之Gavin大咖免费公益课程Rasa Paper论文解析核心版 播放链接:https://edu.csdn.net/course/detail ...

  4. Windows 8.1核心版通过注册表启用Guest账号的局域网共享

    2019独角兽企业重金招聘Python工程师标准>>> 双11买了一台原道W8A平板,系统为Windows 8.1 with Bing,其实就是Windows 8.1 core版换个 ...

  5. “北美之鹰”试图借助Windows 10物联网核心版打破世界陆地速度记录

    据外媒报道,在俄勒冈州阿尔沃德沙漠,一组微软工程师正试图通过Windows 10物联网核心版系统帮助"北美之鹰( North American Eagle)"打破世界陆地速度记录. ...

  6. 广告营销核心干货——《我的营销心得》读书笔记2900字

    广告营销核心干货--<我的营销心得>读书笔记2900字: 作者:云苓木坊:云苓继续给大家分享史玉柱先生的这本书<我的营销心得>之"广告营销核心干货". 今天 ...

  7. 易速还原3.0核心版发布

    易速还原3.0核心版发布 转载于:https://blog.51cto.com/20090909/238910

  8. 启用Win8/10(中文版/核心版/家庭版)中被阉割的远程桌面服务端

    Windows 8/8.1/10 标准版(中文版/核心版/家庭版)中取消了远程桌面服务端,想通过远程连接到自己的电脑就很麻烦了,第三方远程桌面速度又不理想(如TeamViewer). 通过以下方法可让 ...

  9. 五岳核心版上线,这份阿里开发手册核心版又将被多少人疯狂转载?

    学习是一种基础性的能力.然而,"吾生也有涯,而知也无涯.",如果学习不注意方法,则会"以有涯随无涯,殆矣". 学习就像吃饭睡觉一样,是人的一种本能,人人都有学习 ...

  10. 7zip核心算法LZMA源码分析心得

    7zip核心算法LZMA分析心得 最近有空就研究了一下DEFLATE的LZ77压缩算法实现及7zip的LZMA压缩算法实现,现在记下相关心得如下: 一. DEFLATE中的LZ77算法实现比较简单,具 ...

最新文章

  1. intellij idea 和 myeclipse 转换
  2. ACID+CAP+BASE+Transaction(事务)
  3. Swing编程基础 之四
  4. 数据中心管理:从DCIM过渡到DMAAS
  5. 面试官问我怎么设计100层大楼的电梯按键,我......
  6. atom 安装 xdebug 调试 php 代码
  7. 初识Mysql(part2)--我需要知道的8个Mysql语句
  8. thymealf 高级用法_Thymeleaf
  9. PHP网站如何解决大流量与高并发的问题
  10. Vue的数据依赖实现原理简析
  11. IT职场人生系列之三:第一份工作
  12. C++ main函数的几点细节(转载)
  13. Flink学习之flink sql
  14. linux命令行 teamview,linux下安装team viewer的方法
  15. 一文读懂人脸识别技术
  16. ElacticSearch索引,文档,记录,常用指令
  17. 镜像网络MW受邀亮相巴比特杭州区块链国际周
  18. 色差仪如何控制油漆涂层色差
  19. C++将两个字符串合并在一起
  20. Linux环境Hadoop的下载安装

热门文章

  1. oracle 英文 简历,简历表英文模板
  2. 南京大学计算机考研信息汇总
  3. ADAMS学习视频强力推荐--《Adams/ view从入门到提高》ftc正青春制作
  4. 红巨星粒子特效合集插件:Trapcode Suite 18 Mac版(支持m1)
  5. 美团西安美食部分爬虫(修改版)(python)
  6. 斯坦福大学CS224N-深度学习与自然语言处理:课程1-笔记
  7. 什么是JSONP及其实现原理
  8. 阿里图标库《保留彩色》
  9. 【MSRA文档智能综述论文】Document AI: Benchmarks, Models and Applications
  10. php抖音跳转地址,PHP如何实现解析抖音无水印视频