你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F767ZI nucleo 评测 LWIP

[复制链接]
wenyangzeng 提问时间:2017-3-3 12:42 /
本帖最后由 wenyangzeng 于 2017-3-3 17:50 编辑

STM32F767ZI nucleo 的主芯片是ARM Cortex M7内核:

IMG_1476.JPG
主频达到216MHZ,2MB Flash,512KB SRAM,板上集成了ST-LINK/V2-1。更让人兴奋的是板上居然集成了Ethernet 10/100Mbsps 以太网卡。这为我们编程LWIP提供的很好的硬件环境。




IMG_1478.JPG
本次就对LWIP功能进行评测。首先下载STM32Cube_FW_F7_V1.4.0软件包,在\Projects\STM32F767ZI-Nucleo\Applications\LwIP\LwIP_HTTP_Server_Netconn_RTOS就有LwIP_HTTP_Server的演示。该演示代码中系统时钟是使用外部高速晶振HSE,STM32F767ZI-Nucleo开发板未配置外部高速晶振,因此在评测时需要对其进行稍修改。

colck.jpg
进入STM32CubeMX,选择STM32F767ZI,配置HSI使主频为216Mhz.生成一个新项目,将项目中MAIN.C中的SystemClock_Config()函数替换原代码的SystemClock_Config()函数。

  1. void SystemClock_Config(void)
  2. {

  3.   RCC_OscInitTypeDef RCC_OscInitStruct;
  4.   RCC_ClkInitTypeDef RCC_ClkInitStruct;
  5. HAL_StatusTypeDef ret = HAL_OK;
  6.     /**Configure the main internal regulator output voltage
  7.     */
  8.   __HAL_RCC_PWR_CLK_ENABLE();

  9.   __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);

  10.     /**Initializes the CPU, AHB and APB busses clocks
  11.     */
  12.   RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
  13.   RCC_OscInitStruct.HSIState = RCC_HSI_ON;
  14.   RCC_OscInitStruct.HSICalibrationValue = 16;
  15.   RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
  16.   RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI;
  17.   RCC_OscInitStruct.PLL.PLLM = 8;
  18.   RCC_OscInitStruct.PLL.PLLN = 216;
  19.   RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
  20.   RCC_OscInitStruct.PLL.PLLQ = 2;
  21.    ret = HAL_RCC_OscConfig(&RCC_OscInitStruct);
  22.   if(ret != HAL_OK)
  23.   {
  24.    while(1) {};
  25.   }

  26.     /**Activate the Over-Drive mode
  27.     */
  28.    ret = HAL_PWREx_EnableOverDrive();
  29.   if(ret != HAL_OK)
  30.   {
  31.    while(1) {};
  32.   }

  33.     /**Initializes the CPU, AHB and APB busses clocks
  34.     */
  35.   RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
  36.                               |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
  37.   RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
  38.   RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
  39.   RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;
  40.   RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;

  41.   ret = HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_7);
  42.   if(ret != HAL_OK)
  43.   {
  44.    while(1) {};
  45.   }

  46.     /**Configure the Systick interrupt time
  47.     */
  48.   HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000);

  49.     /**Configure the Systick
  50.     */
  51.   HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);

  52.   /* SysTick_IRQn interrupt configuration */
  53.   HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0);
  54. }        
复制代码



IP_address.png
如有需要,在main.h中修改开发板的IP地址。我改成192.168.1.10。

ping.jpg

编译下载。用RJ45网线连接开发板和PC机到路由器上。运行:ping 192.168.1.10。PING成功了。



192.168.1.10.png

在浏览器栏输入192.168.1.10,可以访问了。



STM32F767IZ-LWIP.rar

下载

26.68 KB, 下载次数: 140, 下载积分: ST金币 -1

评分

参与人数 2 ST金币 +11 收起 理由
Willisam + 1 赞一个!
zero99 + 10

查看全部评分

收藏 5 评论35 发布时间:2017-3-3 12:42

举报

35个回答
同年纪 回答时间:2017-5-16 19:49:52
我去,搞了半天,终于搞通了。我下载的是官网的STM32Cube_FW_F7_V1.7.0版本,MDK 5.23,LwIP_HTTP_Server_Netconn_RTOS这个工程里,直接打开,编译,下载。注意一下,下载后有没有reset and run,前面一直调调调,才发现下载器配置不自动运行,好久不搞这个了,人都变傻了;第二个,1.7.0版本里什么代码都可以不用改就能ping通,PC和板子都连路由器,在main.h里,有#define USE_DHCP       /* enable DHCP, if disabled static address is used*/,默认是打开DHCP的,此时的板子ip地址不是下面给的静态地址,可以打开路由器配置页面查看(打开地址就是电脑地址网段的第一个,比如说电脑的地址是192.168.1.10,页面配置地址就是192.168.1.1),就可以在网页里输入你找到的板子地址,肯定是与PC同网段的,就能看到stm32f7 websever demo;如果注释掉USE_DHCP,那么使用的就是静态地址,我们还要修改它Static IP ADDRESS*/,和网关地址Gateway Address ,同理,要跟PC同网段,但IP不同,这样自然也能ping通。程序里有说明,  + LED1: ethernet cable is connected.+ LED3: ethernet cable is not connected.黄灯亮,连接成功,红灯亮失败。
gynapsy 回答时间:2017-6-7 10:22:03
同年纪 发表于 2017-5-16 19:49
我去,搞了半天,终于搞通了。我下载的是官网的STM32Cube_FW_F7_V1.7.0版本,MDK 5.23,LwIP_HTTP_Server_N ...

想问一下,我也是用的官网的STM32Cube_FW_F7_V1.7.0版本,LwIP_HTTP_Server_Netconn_RTOS这个工程里,直接打开,编译,下载。但是我用的是静态IP,这样能ping通但是不能登入网页,也就是找不到板子的地址,请问你对此有了解么
同年纪 回答时间:2017-5-17 00:00:59
wenyangzeng 发表于 2017-5-16 21:32
20楼研究得很仔细的。

忘了说了,这是发给其他刚学习的小伙伴看的,楼主功力深厚,不敢班门弄斧哈。~~又搞了2个小时,我才发现cubeMX真是人间神器,FreeRTOS和LWIP直接加到工程里面,亏我还研究半天RTOS怎么移植的,要不要像UCOS那样写出入栈,明晚再回来看看LWIP怎么移植的吧,Night!
野火_firege 回答时间:2017-3-3 13:46:41
背面是不是有液晶?
xmshao 回答时间:2017-3-3 13:52:12
野火_firege 发表于 2017-3-3 13:46
背面是不是有液晶?

背面没有装液晶。
野火_firege 回答时间:2017-3-3 13:55:32
xmshao 发表于 2017-3-3 13:52
背面没有装液晶。

测试下以太网的速度有多快
zero99 回答时间:2017-3-3 13:57:01
谢谢分享,学习了
wenyangzeng 回答时间:2017-3-3 14:00:20
xmshao 发表于 2017-3-3 13:52
背面没有装液晶。

这片NUCLEO没有液晶
wenyangzeng 回答时间:2017-3-3 14:00:49
野火_firege 发表于 2017-3-3 13:55
测试下以太网的速度有多快

一时找不到合适的测试方法。
野火_firege 回答时间:2017-3-3 14:07:18
wenyangzeng 发表于 2017-3-3 14:00
一时找不到合适的测试方法。

找个测试网络的上位机,猛发数据啊。
shanji 回答时间:2017-3-3 14:15:01
集成网卡是什么概念?不用外接PHY了是吗?
野火_firege 回答时间:2017-3-3 14:18:49
shanji 发表于 2017-3-3 14:15
集成网卡是什么概念?不用外接PHY了是吗?

他的意思就是板载了PHY。
wenyangzeng 回答时间:2017-3-3 14:39:31
野火_firege 发表于 2017-3-3 14:18
他的意思就是板载了PHY。

是的。参看1楼第二幅照片,CN14是RJ45口。
奏奏奏 回答时间:2017-3-3 17:14:51
楼主
不是STM32F767IZ
而是STM32F767ZI
wenyangzeng 回答时间:2017-3-3 17:44:16
奏奏奏 发表于 2017-3-3 17:14
楼主
不是STM32F767IZ
而是STM32F767ZI

OK,谢谢提醒,马上改正。
suoma 回答时间:2017-3-3 21:54:23
谢谢分享学习一下
原田夜舞love 回答时间:2017-3-5 10:42:21
学习了
123下一页
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版