在线时间954 小时
UID3006948
ST金币0
蝴蝶豆5
注册时间2014-1-15
论坛元老
- 最后登录
- 2019-8-28
|
a0a.1 32b0c
F769DISCO开发板(STM32官网)集成了ETH网络接口,有了这个就可以玩网络通信和远程控制了。
今天的测试,是使用浏览器来远程控制LED灯,麻雀虽小,可是五脏俱全啊。
关于ETH的相关设置及知识,请参考咱以前写的一篇小贴子
F7-DISCO笔记之五:ETH及简单的HTTP服务器
大部分代码都是借用的BSP里面的例程,只是加入了自己的一些简单代码。
本贴择要点适当说明。
1 IP地址的获取使用的是DHCP方式,这样简单,适用性也更强一点。
看到显示屏上获取的IP地址了吧,DHCP方式获取的。
2 初始化LED,使用BSP代码
3 访问方式直接通过浏览器来实现,这里实现伪REST风格的代码来实现信息的提交。直接通过HTML的GET方式实现简单参数的传递,如果要使用POST方法也是可以的,代码稍复杂一点。
- else if((strncmp(buf, "GET /device/led/user2/on", 24) == 0))
- {
-
-
- BSP_LED_On(LED2);
- netconn_write(conn, "LED2 ON", 7, NETCONN_NOCOPY);
-
- }
- else if((strncmp(buf, "GET /device/led/user2/off", 25) == 0))
- {
- BSP_LED_Off(LED2);
- netconn_write(conn, "LED2 OFF", 8, NETCONN_NOCOPY);
-
- }
复制代码
浏览器GET方式提交内容的组织采取/device/led/user2/on模式来分解,device为根,led为其中的一个设备,user2是具体的设备名,on/off则表示具体的状态了。
如果用户提交/device/led/user2/on数据,则表明需要打开LED2的状态,即点灯,如果最后面的状态改为off则灭灯。等下次也来个24灯全灭的效果,震撼全场!
编译无误的话,就可以下载到开发板来测试效果了。
打开浏览器,输入类似的控制语句,服务器会给出响应,指示当前LED的状态。
对应的开发板上效果
灭灯操作。
赫赫,远程控制成功。
只可惜手头没有ESP8266模块,不能体验WIFI控制的便利,等下次有了再体验。
|
|