" 您可以通过WebSocket协议,使用网页端控制STM32灯的亮灭。首先,您需要在STM32端搭建一个WebSocket服务器,接收来自网页端的指令,然后控制LED灯的亮灭。
以下是STM32端的代码(基于Arduino框架):
```cpp
#include <WebSocket.h>
// 设置LED引脚
const int ledPin = 13;
// 初始化WebSocket服务器
WebSocketServer server(8080);
void setup() {
pinMode(ledPin, OUTPUT); // 设置LED引脚为输出
digitalWrite(ledPin, HIGH); // 初始状态:灯亮
Serial.begin(115200); // 初始化串口
server.begin(); // 启动WebSocket服务器
}
void loop() {
server.handleClient(); // 处理客户端连接
// 检查是否有新的WebSocket连接
if (server.available()) {
WebSocketClient *client = server.available();
String message = client->readString(); // 读取客户端发送的消息
if (message == "turnOff") { // 收到关灯指令
digitalWrite(ledPin, LOW); // 关闭LED灯
} else if (message == "turnOn") { // 收到开灯指令
digitalWrite(ledPin, HIGH); // 打开LED灯
}
}
}
```
接下来,在网页端编写JavaScript代码,通过WebSocket连接到STM32,并发送指令控制LED灯的亮灭:
```html
<!DOCTYPE html>
<html>
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/sockjs-client/1.5.0/sockjs.min.js"></script>
<script>
const socket = new SockJS('ws://' + window.location.host + '/ws');
const stm32 = socket.sync(function(data) {
if (data.command === 'turnOff') {
document.getElementById('led').style.backgroundColor = 'black';
} else if (data.command === 'turnOn') {
document.getElementById('led').style.backgroundColor = 'green';
}
});
function turnOff() {
stm32.send({command: 'turnOff'});
}
function turnOn() {
stm32.send({command: 'turnOn'});
}
</script>
</head>
<body>
<button onclick="turnOff()">关灯</button>
<button onclick="turnOn()">开灯</button>
<div id="led" style="width: 50px; height: 50px; background-color: green;"></div>
</body>
</html>
```
这样,您就可以通过网页端控制STM32灯的亮灭了。需要注意的是,您需要将STM32与电脑连接在同一局域网内,并确保网络畅通。"