工具:正点原子的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);
&

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

被折叠的 条评论
为什么被折叠?



