RT-Thread Studio开启WiFi连接
我们在上一个工程(RT-Thread Studio采集温湿度数据)的基础上添加WiFi连接功能;
ATK-Pandora-STM32L4开发板上板载了一个正基公司的AP6181 WiFi 模组,通过SDIO接口与MCU进行连接,原理图如下所示:
一、开启WIFI功能
打开【RT-Thread Settings】,j将SDIO功能打开,然后选择【更多配置】
在组件中找到【使用WiFi框架】将其选中
然后构建,下载,然后在串口终端输入wifi scan
,很好,没有用
为什么呢,因为RT-Thread Studio并没有导入和AP6181 WiFi 模组相关的代码,所以,好吧,不能用,怎么办。本人本着顽强不屈的精神,对比了正点原子提供的潘多拉开发板的源码,然后将其中和AP6181有关的代码拿来一用。
二、AP6181 WiFi 模组代码移植
打开正点原子给潘多拉开发板提供的源码;
1、将3,程序源码\2,进阶例程 - RT-Thread IoT例程\libraries
下的wifi
和rt_ota
文件夹复制
将其粘贴到本次工程的libraries
文件夹下
2、将3,程序源码\2,进阶例程 - RT-Thread IoT例程\drivers
下的drv_wlan.c
和drv_wlan.h
文件夹复制
粘贴到本次工程的board\ports
文件夹下
4、然后点击工具栏上【打开构建配置】按钮,在工具设置配置页,点击GNU ARM Cross C Compiler
下的Includes
配置项打开头文件路径配置参数,点击Inlucde paths(-I)
配置栏的增按钮进行头文件路径的添加
选中工作空间下的${workspace_loc:/${ProjName}/libraries/rt_ota/inc}
,然后保存
点击 Cross ARM C Linker
下的 Libraries
配置项设置外部二进制库文件,点击 Libraries(-l)
配置栏的增按钮进行进行库文件的添加,在 Library search path(-L)
配置栏配置库文件相应的路径。
在 Libraries(-l) 配置栏增加二进制库文件名称,注意需要去掉前缀 lib 与后缀 .a 。
5、打开drv_wlan.h
,添加如下代码:
#define BSP_USING_WIFI
#define BSP_USING_WIFI_AUTO_INIT
// WiFi IRQ
#define PIN_WIFI_IRQ 34 // PC5 : WIFI_INT --> WIFI
#define RT_WLAN_PROT_LWIP ("lwip")
三、添加软件包
在上面的代码中,需要用到EasyFlash的支持,所以我们打开【RT-Thread Settings】,点击【Add】
搜索EasyFlash
,点击添加
搜索fal
,点击添加
将【RT-Thread Settings】保存,修改过滤器,构建,然后我们就会发现好多报错:
看起来好像是同一个问题,怎么解决呢,找到packages->EasyFlash->port
,发现下面的文件都失效了
在ports
上右击->属性,将【将资源从构建中排除】的勾选驱动,应用并关闭
然后再将ef_sfud_port.c
右键,将勾选选中
然后重新构建一次,继续报错,然后我们再次打开【RT-Thread Settings】,将【DFS】、【libc】和【SDIO】打开
好的,搞不下去,等我有空再想办法解决吧