打印
[STM32F3]

STM32 LwIP测试过程简介

[复制链接]
898|59
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
范德萨发额|  楼主 | 2022-5-29 13:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
9G-<span href="tag.php?name=STM">STM32 LwIP测试过程简介
一,准备STM32 LwIP软件
1,在
下载lwIP TCP/IP stack demonstration for STM32F107xx connectivity line microcontrollers软件包
    an3102.zip

使用特权

评论回复
沙发
范德萨发额|  楼主 | 2022-5-29 13:42 | 只看该作者
2,在
    下载lwIP TCP/IP stack demonstration for STM32F107xx connectivity line microcontrollers文档
16620.pdf">pdf

使用特权

评论回复
板凳
范德萨发额|  楼主 | 2022-5-29 13:43 | 只看该作者
3,有关STM32F107VC-PKT的PCB和SCH和测试代码见下面连接:

使用特权

评论回复
地板
范德萨发额|  楼主 | 2022-5-29 13:44 | 只看该作者
二,建立STM32 LwIP开发工程
1,把an3102.zip解压到D:\works形成工程文件夹:D:\works\STM32F107_ETH_LwIP_V1.0.0 ;
2,进入到目录D:\works\STM32F107_ETH_LwIP_V1.0.0\Project\EWARM">ARMv5,双击Project.eww打开工程;
3,在EWARM中的Project->make 编译通过整个项目。

使用特权

评论回复
5
范德萨发额|  楼主 | 2022-5-29 13:45 | 只看该作者
三,修改STM32 LwIP开发工程
1,打开Project->Options ,在Category中选择Debugger的setup驱动用J-Link/J-Trace,在J-Link/J-Trace
中选择connection的SWD接口;
2,对STM32F107VC-PKT开发板加上5V的直流电源,把J-LINK用USB线连接到PC的USB口上,执行Project->Download and Debug
下载代码到板子后,执行Debug->Go 。

使用特权

评论回复
6
范德萨发额|  楼主 | 2022-5-29 13:46 | 只看该作者
四,修改STM32 LwIP开发源码
1,在D:\works\STM32F107_ETH_LwIP_V1.0.0\Project\src\main.c 的53行后添加如下代码:
   /* Output a message on Hyperterminal using printf function */
   printf("\n\r\n\r\n\r\n\r");
   printf("*** STM32F107VC-PKT V1.0 Build by yuanxihua@21cn.com on ("__DATE__ " - " __TIME__ ")\n\r");
   printf("*** STM32F107VC-PKT V1.0 Rebooting ...\n\r");

使用特权

评论回复
7
范德萨发额|  楼主 | 2022-5-29 13:46 | 只看该作者
2,在D:\works\STM32F107_ETH_LwIP_V1.0.0\Project\src\stm32f107.c 的包含头文件中添加:
   #include "stdio.h"

在第30行选择用MII模式:
#define MII_MODE          /* MII mode for STM3210C-EVAL Board (MB784) (check jumpers setting) */
//#define RMII_MODE       /* RMII mode for STM3210C-EVAL Board (MB784) (check jumpers setting) */

在54行后添加:
USART">USART_InitTypeDef USART_InitStructure;

使用特权

评论回复
8
范德萨发额|  楼主 | 2022-5-29 13:47 | 只看该作者
在125行后添加:

   /* Configure the com port */
   /* USARTx configuration ------------------------------------------------------*/
   /* USARTx configured as follow:
         - BaudRate = 115200 baud  
         - Word Length = 8 Bits
         - One Stop Bit
         - No parity
         - Hardware flow control disabled">led (RTS and CTS signals)
         - Receive and transmit enabled
   */
   USART_InitStructure.USART_BaudRate = 115200;
   USART_InitStructure.USART_WordLength = USART_WordLength_8b;
   USART_InitStructure.USART_StopBits = USART_StopBits_1;
   USART_InitStructure.USART_Parity = USART_Parity_No ;
   USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
   USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;

   STM_EVAL_COMInit(COM1, &USART_InitStructure);
}

/**
   * @brief  Retargets the C library printf function to the USART.
   * @param  None
   * @retval : None
   */
int fputc(int ch, FILE *f)
{
   /* Write a character to the USART */
   USART_SendData(USART2, (uint8_t) ch);

   /* Loop until the end of transmission */
   while(USART_GetFlagStatus(USART2, USART_FLAG_TXE) == RESET)
   {
   }

   return ch;
}
/**
   * @brief  Get a key from the HyperTerminal
   * @param  None
   * @retval : The Key Pressed
   */
int fgetc(FILE *f)
{
  /* Waiting for user input */
  while ( USART_GetFlagStatus(USART2, USART_FLAG_RXNE) == RESET);
  return (uint8_t)USART2->DR;

使用特权

评论回复
9
范德萨发额|  楼主 | 2022-5-29 13:48 | 只看该作者
在341-344行修改为:
   /* ADC">ADC Channel10 config --------------------------------------------------------*/
   /* Relative to STM32F107VC-PKT Board   */
   /* Configure PC.00 (ADC Channel10) as analog input -------------------------*/
GPIO">GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;

在375-376行修改为:
/* ADC1 regular channel10 configuration */
ADC_RegularChannelConfig(ADC1, ADC_Channel_10, 1, ADC_SampleTime_13Cycles5);

使用特权

评论回复
10
范德萨发额|  楼主 | 2022-5-29 13:48 | 只看该作者
3,在D:\works\STM32F107_ETH_LwIP_V1.0.0\Project\src\netconf.c 中的119-121行和316-318行把
IP地址都修改如下:
   IP4_ADDR(&ipaddr, 192, 168, 1, 8);
   IP4_ADDR(&netmask, 255, 255, 255, 0);
   IP4_ADDR(&gw, 192, 168, 1, 1);

使用特权

评论回复
11
范德萨发额|  楼主 | 2022-5-29 13:49 | 只看该作者
4,在D:\works\STM32F107_ETH_LwIP_V1.0.0\Utilities\lwip-1.3.1\port\lwipopts.h中把
#define LWIP_DHCP               1
修改成:
#define LWIP_DHCP               0

使用特权

评论回复
12
范德萨发额|  楼主 | 2022-5-29 13:50 | 只看该作者
5,在D:\works\STM32F107_ETH_LwIP_V1.0.0\Utilities\STM32_EVAL\STM3210C_EVAL\stm3210c_eval.h中把
#define LED1_GPIO_PIN               GPIO_Pin_7
修改成:
#define LED1_GPIO_PIN               GPIO_Pin_13

#define LED2_GPIO_PIN               GPIO_Pin_13
修改成:
#define LED2_GPIO_PIN               GPIO_Pin_14

#define LED3_GPIO_PIN               GPIO_Pin_3
修改成:
#define LED3_GPIO_PIN               GPIO_Pin_15


#define COMn                        1
修改成
#define COMn                        2

使用特权

评论回复
13
范德萨发额|  楼主 | 2022-5-29 14:33 | 只看该作者
6,同样执行Project->Download and Debug 下载代码到板子后,执行Debug->Go 可以全速仿真运行。

使用特权

评论回复
14
范德萨发额|  楼主 | 2022-5-29 14:33 | 只看该作者
五,演示STM32 LwIP开发工程
1,用交叉网线连接STM32F107VC-PKT到PC的网口,用交叉串口线连接RS232到PC的串口中,再对板子用5V上电
复位启动工作;
2,可以在串口终端上用115200 8N1的格式看到:
*** STM32F107VC-PKT V1.0 Build by yuanxihua@21cn.com on (Jan 12 2010 - 12:43:08)
*** STM32F107VC-PKT V1.0 Rebooting ...
3,在PC的IE浏览器中输入: 回车刷新可以访问到板子,看到Home page主页:
STM32F107 Webserver Demo
Based on the lwIP TCP/IP stack
4,点击Led control从Home page切换LED控制,任意勾上或者去掉LED1-3,再按SEND,可以看到板子的LED相应的
被控制亮或者灭;
5,点击ADC status bar从Led control页面切换到ADC采集,旋转板子上的RV1,可以看到STM32F107 ADC status bar
上绿色的滚动条被ADC的输入电压控制增减;
6,在SecureCRT 5.1终端中可以以telnet协议访问192.168.1.8,端口就是23,连接上了会显示:
Hello. What is your name? ,输入字符串YUANXIHUA,马上会回复Hello YUANXIHUA

使用特权

评论回复
15
玛尼玛尼哄| | 2022-7-25 13:05 | 只看该作者
感谢分享

使用特权

评论回复
16
天灵灵地灵灵| | 2022-7-25 15:47 | 只看该作者
谢谢分享

使用特权

评论回复
17
yiyigirl2014| | 2022-8-4 17:17 | 只看该作者

使用特权

评论回复
18
daichaodai| | 2022-8-4 19:03 | 只看该作者
谢谢分享经验

使用特权

评论回复
19
wanduzi| | 2022-8-10 16:11 | 只看该作者
完美

使用特权

评论回复
20
chenjunt| | 2022-8-10 22:03 | 只看该作者
从哪转载的?可否说明下出处

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

43

主题

789

帖子

1

粉丝