CH32v208_HTTP CLient 实现

本文基于v208实现HTTP Client应用,v307等有以太网功能的mcu同样适用,可自行移植参考

1.协议说明,主要功能涉及TCP、DHCP、DNS、HTTP,本文不多赘述,有兴趣可咨询AI

2.主要代码:

(1)首先net_config.h中,需要配置使用3个socket,一个tcp用于HTTP通信,一个udp用于DHCP应用,一个UDP用于DNS域名解析应用

image

(2)DHCP初始化:设置DHCP主机名,有路由器对此有规定,不设置主机名拿不到IP;后面启动DHCP,并填入回调函数

当dhcp成功或者失败时,以太网库会调用dhcp_callback函数通知应用层DHCP状态。WCHNET库会传递两个参数,第一个参数是DHCP状态,0为成功,非0的其他所有值均为失败;

当为0时,可以用过第二个参数获取到指向IP、网关、掩码等参数地址的指针

image

(3)回调函数中,DHCP成功后,通过指针获取到IP等信息并写给芯片

因为代码是通过域名访问HTTP 服务器,所以还需要涉及域名解析,将域名转换为IP地址,这样芯片才能成功访问,进行http通信

所以在DHCP成功拿到DNS服务器地址后,调用WCHNET_InitDNS,初始化DNS,并紧接着调用WCHNET_HostNameGetIp函数开始域名解析拿IP的动作

image

 (4)WCHNET_HostNameGetIp函数中,调用回调函数,如果失败,则停止DNS过程;如果成功 ,则输出IP地址,释放DNS占用的socket资源,并将标志位置1

image

 (5)主程序中,检测DNS成功,开始HTTP流程,建立tcp连接并通信

image

 (6)POST指令

tcp连接上后,由变量HttpMethod控制,交替发送发送实现GET指令(获取资源)和POST指令(提交/创建/修改资源)

image

image

3.源文件链接:https://files.cnblogs.com/files/blogs/808422/CH32V208_TCP_HTTP_Client.zip?t=1791439068&download=true

posted on 2026-10-08 14:31  Lqqq123  阅读(7)  评论(0)    收藏  举报

导航