这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » 国产MCU » c函数中进行wifi连接OK527N-C

共1条 1/1 1 跳转至

c函数中进行wifi连接OK527N-C

工程师
2025-02-21 18:57:40     打赏

人啊,有无线的就不想用有线的了,板子上带了wifi,就不想折腾有线网卡了。

这一节实现通过c函数开启wifi。

研究了下官方提供的cmd测试程序,里面是一个脚本文件fltest_wifi.sh,执行的时候附带ssid和password并指定节点名就可以连接了,示例如下:

fltest_wifi.sh -i wlan0 -s H3C_708 -p 12345678
  • -i表示无线网卡节点名

  • -s表示要连接的wifi名

  • -p表示要连接的wifi密码

连接上之后可以试着ping 百度和主机ip确定是否ok

ping百度成功

image.png

开发板ping主机失败

image.png

主机ping开发板成功
image.png

猜测可能是主机防火墙问题,将主机防火墙关闭,ps应该是设置过滤规则就可以的,这里为了方便就直接关闭防火墙了。

关闭主机防火墙后再ping开发板就通了。
image.png

--------------------------------分割线----------------------------

以上是在命令窗口通过shell命令实现的,相当于先验证了通路并确保链路是正常的可以实现的,下面就通过c函数进行实现wifi连接

上面已经说了官方的wifi测试是shell 脚本命令实现的,关键还没断开wifi的命令。物理吐槽

要实现预定功能就要新建wifi.c以及Makefile

如下给出简要的测试代码

Makefile.c

CC=/home/long/work/OKT527/aarch64-buildroot-linux-gnu_sdk-buildroot/bin/aarch64-none-linux-gnu-gcc  
CFLAGS=-Wall -I.  
LDFLAGS=  
SRCS=$(wildcard *.c)  
OBJS=$(SRCS:.c=.o)  
TARGET=app  

all: $(TARGET)  

$(TARGET): $(OBJS)  
    $(CC) $(LDFLAGS) -o $@ $^  
%.o: %.c  
    $(CC) $(CFLAGS) -c -o $@ $<  
clean:  
    rm -f $(OBJS) $(TARGET)  
help:  
    [url=home.php?mod=space&uid=70594]@echo[/url] "make - 编译所有源文件并生成可执行文件 $(TARGET)"  
    [url=home.php?mod=space&uid=70594]@echo[/url] "make clean - 清理编译生成的文件"  

.PHONY: clean help


wifi.c

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
    // 使用system()函数执行fltest_wifi.sh命令  
    int status = system("fltest_wifi.sh -i wlan0 -s CMCC-p3Hp -p xh5mbggl");  
    if (status == -1)
    {  
        // system()调用失败  
        printf("system() failed");  
        return 1;  
    }
    else if (WIFEXITED(status))
    {  
        // 命令正常结束,WEXITSTATUS宏用于获取命令的退出状态  
        printf("Command exited with status %d\\\\n", WEXITSTATUS(status));  
    }
    else
    {  
        printf("Command was interrupted by a signal\\\\n");  
    }
    return 0;
}

这里只是一个简单的demo,先实现通过应用程序连接wifi,后面再完善其他功能。

通过交叉编译链编译生成app,将其拷贝到开发板,最简单的方式就是通过adb push命令将其推送到开发板的指定目录。不过这需要另外一根usb-typec线连接主机usb和开发板的usb0口,另外一根串口线也不要拔掉,可以看日志和执行app,当然在adb shell界面也可以执行app。我这里usb0主要用于推送文件到开发板,在串口界面执行命令并打印log。
image.png

我将其推送到了/home/forlinx目录下。

在该目录下执行如下命令,即可运行app程序了

chmod +x app./app

image.png

至此完成初步实验,可以在c程序中进行wifi连接,同时也可以修改要连接的wifi名称和密码,以便后续功能实现。





关键词: 函数     连接     OK527N-C    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]