928|0

274

帖子

8

TA的资源

纯净的硅(初级)

楼主
 

【STM32MP135F-DK】3-通过wifi连接网络 [复制链接]

本帖最后由 manhuami2007 于 2023-12-15 11:27 编辑
在办公的地方,使用有线连接的方式不太方便,所以还是使用wifi比较方便。开发板上带有wifi功能,也可以很方便的启用wifi。
在没启动wifi的时候还是需要串口进行连接的。首先使用串口连接开发板进行设置,如下图所示,将micro usb线接入到左侧的接口上。然后通过串口连接开发板,开发板的波特率是115200。

 

 

接下来就可以通过串口控制开发板了。参考网址 How to setup a WLAN connection - stm32mpu (stmicroelectronics.cn) 进行设置。
文章中提到了2种方法,一个是修改systemd-networkd服务,一个是不修改systemd-networkd服务的方法。但是不推荐用第二个,第二个方法有问题,后面会说问题在哪里。
 
修改systemd-networkd服务,自动连接WIFI

 

1. 使用 ifconfig -a 命令查看网络接口,wifi对应的网络接口是wlan0,初始的时候是没有ip地址的;

2. 通过命令ifconfig wlan0 192.168.43.135 broadcast 192.168.43.255 netmask 255.255.255.0设置ip地址,然后通过命令ifconfig wlan0 up启动wlan0接口。注意这里设置的IP地址等信息不重要,当我们连到wifi之后会重新分配动态IP

3. 可以使用iw命令扫描周围的wifi,命令是 iw dev wlan0 scan |grep SSID ,列出周围wifi的SSID;

4. 接下来是设置wifi在上电的时候自动连接。文章里说,系统有一个针对网络的服务systemd-networkd,这个服务可以通过networkctl命令去控制。

5. systemd-networkd默认使用的是以太网接口的,所以需要设置到wifi 。文章上是通过输入如下命令进行设置的:

echo "[Match]" > /lib/systemd/network/51-wireless.network
echo "Name=wlan0" >> /lib/systemd/network/51-wireless.network
echo "[Network]" >> /lib/systemd/network/51-wireless.network
echo "DHCP=ipv4" >> /lib/systemd/network/51-wireless.network

不过还有一个简单方法,当我们使用cd命令切换到 /lib/systemd/network/ 文件夹下的时候,可以看到已经提供了很多样板了,直接对样板进行改名操作就行。命令是 cp 51-wireless.network.sample 51-wireless.network

 

使用cat命令输出51-wireless.network.sample文件可以看到内容是一样的,而且还有一些提示信息。

 

6. 然后是写入要连接的wifi的SSID和密码,使用如下命令:

mkdir -p /etc/wpa_supplicant/
echo "ctrl_interface=/var/run/wpa_supplicant" > /etc/wpa_supplicant/wpa_supplicant-wlan0.conf
echo "eapol_version=1" >> /etc/wpa_supplicant/wpa_supplicant-wlan0.conf
echo "ap_scan=1" >> /etc/wpa_supplicant/wpa_supplicant-wlan0.conf
echo "fast_reauth=1" >> /etc/wpa_supplicant/wpa_supplicant-wlan0.conf
echo "" >> /etc/wpa_supplicant/wpa_supplicant-wlan0.conf
wpa_passphrase SSID_OF_NETWORK PASSWORD_OF_NETWORK >> /etc/wpa_supplicant/wpa_supplicant-wlan0.conf

最后一行的wpa_passphrase 后面的是wifi的SSID和密码。如果要添加多个wifi的SSID和密码,则需要多次调用 wpa_passphrase SSID_OF_NETWORK PASSWORD_OF_NETWORK >> /etc/wpa_supplicant/wpa_supplicant-wlan0.conf 这个命令。

7. 启用无线的配置,命令如下:

systemctl enable wpa_supplicant@wlan0.service
systemctl restart systemd-networkd.service
systemctl restart wpa_supplicant@wlan0.service

 

这样就能连接到wifi了,重启之后也能够自动连接到设置的wifi。
通过ping命令测试网络:

 

 
不修改systemd-networkd服务,手动连接wifi
 
注意,在文章中还提到了不去更改systemd-networkd服务,手动连接wifi的方法,但是不建议使用这种方法,我一开始就是用的这种方法,出现了各种错误,耽误了好长的时间。比如能ping通局域网里的其它设备,但是不能ping 百度,出现下图的错误,感觉是DNS的问题,然后各种尝试,还是没有解决。

 

在文章中,ST官方也提到了这种方法有问题,不建议使用,所以大家还是使用上面提到的那种修改systemd-networkd服务的方法吧。

 

总结
通过第一种方式,开发板可以连接到网络中了,这样就能安装软件了。
此帖出自stm32/stm8论坛
点赞 关注
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表