STM32CubeMX V6.3.0 在STM32F407ZGT6(正点原子开发板)上实验8 断网检测与断网恢复相关、热插拔

本文介绍了如何在使用STM32F4探索者开发板进行网络通讯实验时,解决系统因网线连接问题导致的IP获取问题。重点讲解了`ethernetif_notify_conn_changed`回调函数的应用,以及如何在CUBE和KEIL工程中启用网络连接状态检测和自动重置IP的过程。

工具:正点原子的STM32F4探索者开发板。

准备:STLINK连接电脑和开发板。然后开发板上电,用一根网线连接开发板和路由器,电脑也连接到路由器上(有线或无线均可)。 然后用USB转miniUSB线连接电脑和开发板的串口1(注意接插件到串口1中间有个插针,需要用短路帽连接),然后打开串口调试助手,115200波特率,一直监视着就行。我用的sscom v5.13.1,打开网口调试助手,我也用的sscom,端口5001,一直监听着就行。

工程:用的实验5/6

备注:在进行网络通讯实验时,如果系统启动时网线没插或者正常连接过程中拔掉网线再插上后系统网络无法连接。这时候就要注意以下几点,注意:我使用的自动获取IP,而不是预设!

1)系统启动时网线没插,这样的话初始化会失败,也就是MX_LWIP_Init(); 这是没办法获取到IP的,因此需要在检测到网线连接以后自动重新获取IP,那么具体怎么做呢。

首先需要检测到网线连接上这个事件。

这里用到这个回调函数:void ethernetif_notify_conn_changed(struct netif *netif),见下图:

在图中是弱函数出现的,所以在我们自定义的文件里重新定义这个函数:

void ethernetif_notify_conn_changed(struct netif *netif)
{
    if(netif_is_link_up(netif)){
        printf("网络连接状态发生改变:刚刚连接上");
        netif_set_up(netif);
 &

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值