|
|
3 месяцев назад | |
|---|---|---|
| inc | 2 месяцев назад | |
| lib | 4 месяцев назад | |
| port | 2 месяцев назад | |
| rom_export | 4 месяцев назад | |
| src | 2 месяцев назад | |
| BUILD_GUIDE.md | 4 месяцев назад | |
| PORTING.md | 4 месяцев назад | |
| PORTING_ISSUES.md | 4 месяцев назад | |
| README.md | 4 месяцев назад | |
| SConscript | 2 месяцев назад |
GD32VW55x WIFI 驱动软件包是为 GD32VW55x 系列芯片的 WIFI 功能提供的 RT-Thread 驱动包。本软件包支持 802.11 b/g/n 协议,提供 Station 和 SoftAP 模式,支持 WPA/WPA2/WPA3 安全协议。
WIFI 模式
安全协议
网络功能
gd32vw55x-wifi
├── inc # 公共头文件
├── src # 源代码
│ ├── wifi_manager # WIFI 管理层
│ │ └── wpas # WPA Supplicant 接口层
│ ├── macsw # MAC 层接口
│ │ ├── export # 导出头文件
│ │ └── import # 导入头文件
│ ├── plf # 平台适配层
│ ├── rtos # RTOS 适配层
│ └── util # 工具库
├── lib # 预编译库
│ ├── libwifi.a # WIFI MAC 层库
│ ├── libwpas.a # WPA Supplicant 库
│ └── librf.a # RF 射频库
├── rom_export # ROM 导出符号
├── port # RT-Thread 移植层
├── samples # 示例代码
├── package.json # 软件包描述
├── Kconfig # 配置选项
├── SConscript # 构建脚本
└── README.md # 使用说明
软件包位于 BSP 的 packages/gd32vw55x-wifi 目录下。
从 GD32VW55x_RELEASE_V1.0.3f SDK 复制以下内容:
# 1. 复制 wifi_manager 源码
复制 MSDK/wifi_manager/* 到 src/wifi_manager/
# 2. 复制 macsw 头文件
复制 MSDK/macsw/export/* 到 src/macsw/export/
复制 MSDK/macsw/import/* 到 src/macsw/import/
# 3. 复制平台层
复制 MSDK/plf/src/* 到 src/plf/src/
注意:GD32VW55x_standard_peripheral 已存在于 packages/gd32-riscv-series-latest/GD32VW55x/ 下,无需重复复制
# 4. 复制 RTOS 适配层
复制 MSDK/rtos/rtos_wrapper/* 到 src/rtos/rtos_wrapper/
# 5. 复制工具库
复制 MSDK/util/src/* 到 src/util/src/
复制 MSDK/util/include/* 到 src/util/include/
# 6. 复制预编译库
复制 MSDK/lib/libwifi.a 到 lib/
复制 MSDK/lib/libwpas.a 到 lib/
复制 MSDK/lib/librf.a 到 lib/
# 7. 复制 ROM 符号
复制 ROM-EXPORT/symbol/rom_symbol_m.gcc 到 rom_export/symbol/
复制 ROM-EXPORT/halcomm/* 到 rom_export/halcomm/
复制 ROM-EXPORT/mbedtls-2.17.0-rom/ 到 rom_export/
使用 menuconfig 配置:
RT-Thread online packages --->
peripheral libraries and drivers --->
[*] Enable GD32VW55x WIFI support --->
[*] Enable Station Mode
[ ] Enable SoftAP Mode
Security Configuration --->
[*] Enable WPA/WPA2 Security
[ ] Enable WPA3 Security
[*] Enable WIFI Sample Code
在 port/ 目录下实现以下适配:
scons
| 选项 | 说明 | 默认值 |
|---|---|---|
| PKG_USING_GD32VW55X_WIFI | 启用 WIFI 支持 | n |
| GD32VW55X_WIFI_STATION_MODE | Station 模式 | y |
| GD32VW55X_WIFI_SOFTAP_MODE | SoftAP 模式 | n |
| GD32VW55X_WIFI_WPA_SECURITY | WPA/WPA2 安全 | y |
| GD32VW55X_WIFI_WPA3_SECURITY | WPA3 安全 | n |
| GD32VW55X_WIFI_TASK_STACK_SIZE | 任务栈大小 | 4096 |
| GD32VW55X_WIFI_DEBUG | 调试输出 | n |
int wifi_init(void);
// 扫描 AP
int wifi_scan(void);
// 连接 AP
int wifi_connect(const char *ssid, const char *password);
// 断开连接
int wifi_disconnect(void);
// 获取连接状态
int wifi_get_status(wifi_status_t *status);
// 启动 AP
int wifi_start_ap(const char *ssid, const char *password, uint8_t channel);
// 停止 AP
int wifi_stop_ap(void);
#include <rtthread.h>
#include "wifi_management.h"
void wifi_sta_example(void)
{
// 初始化 WIFI
wifi_init();
// 扫描 AP
wifi_scan();
rt_thread_mdelay(3000);
// 连接 AP
wifi_connect("YourSSID", "YourPassword");
// 等待连接
rt_thread_mdelay(5000);
// 获取 IP 地址
wifi_status_t status;
wifi_get_status(&status);
rt_kprintf("IP: %s\n", status.ip);
}
#include <rtthread.h>
#include "wifi_management.h"
void wifi_ap_example(void)
{
// 初始化 WIFI
wifi_init();
// 启动 AP
wifi_start_ap("GD32VW_AP", "12345678", 6);
rt_kprintf("AP started\n");
}
BSD-3-Clause License
Copyright (c) 2023, GigaDevice Semiconductor Inc.