zoukankan      html  css  js  c++  java
  • stm32cubeMX配置LWIP

    MCU:stm32f769NIHx 

    PHY:LAN8742A

    LWIP_VERSION:2.0.3

     1.配置RCC,串口(printf debug log)

      (1)开启RCC,配置时钟系统

        图1.1

        (2)时钟树配置如下图所示

                  图1.2

       (3)串口1配置基本参数

    图1.3

    /* 小技巧 */
    
    在工程里我们平时会用到printf打印debug信息,如果产品发布的时候,这些打印信息就要注释掉,为了方便管理,我们会对prinf再次封装并用宏去控制开启和关闭debug_log
    
    
    
    /* printf重定向 不用标准库 减少代码量 */
    #if 1
    #pragma import(__use_no_semihosting)
    
    int _ttywrch(int ch) 
    {
      ch=ch;
      return ch;
    }
    
    struct __FILE 
    { 
      int handle; 
    };
    
    FILE __stdout; 
    
    void _sys_exit(int x) 
    { 
      x = x; 
    } 
    //重定义fputc函数 
    int fputc(int ch, FILE *f)
    { 
      while((USART1->ISR&0X40)==0);//循环发送,直到发送完毕 
      USART1->TDR = (u8) ch; 
      return ch;
    }
    #endif
    
     /* 宏控制 debug log */
    
    #ifdef MY_DEBUG 
    #define debug(format, ...) printf(format, ##__VA_ARGS__)
    #else
    #define DEBUG(format,...) 
    #endif

     2.ETH配置参数

    ·

    图1.4

          (1)PHY前16个寄存器是通用的标准的,所以都一样。第31个寄存器是比较重要,可以读取这个寄存器获取通讯速度和是否处在自协商模式

    图1.5

     通讯(2)模式为RMII:关于RMII和MII的区别,详情请看https://blog.csdn.net/fun_tion/article/details/70270632

    图1.6

               (3)LWIP参数配置,应为没有路由器,直接用网线和电脑相连,所以只能使用敬爱IP不能使用DHCP ,ICMP功能需要打开,因为这个功能是用来ping消息的。UDP和TCP也关掉了,目前还没有用到,,其他参数默认,在主函数循环中循环调用MX_LWIP_Process();包括轮训接收信息和一些LWIP协议栈需要定时调用的函数

     图1.7

  • 相关阅读:
    python——函数
    python——文件操作
    python——字符编码
    【转】基于jquery的无刷新表格分页
    js console.log 打印 对像 数组 详解
    百度地图自己添加 标识地点 代码
    在线提取PDF中图片和文字
    安全cookie登录状态设计方案
    iScroll 下拉刷新
    WebSQL实例记录
  • 原文地址:https://www.cnblogs.com/st-home/p/10896298.html
Copyright © 2011-2022 走看看