我正在 STM32F767ZI 上做一个项目。编译代码时出现的错误是“您的目标不支持以太网接口库”。我在谷歌上搜索并找到了某人的 F7_Ethernet 库,但由于库内部的错误,程序仍然无法编译。
代码如下所示:
//Example - Voice Controlled Door Access
#include "mbed.h"
//#include "EthernetInterface.h"
//#include "F7_Ethernet.h"
#include <stdio.h>
#include <string>
#include "rtos.h"
#include "Servo.h"
#if defined(TARGET_NUCLEO_F767ZI)
Servo myservo(D9);
#endif
#define PORT 80
void web_server(void const *args) {
TCPSocketServer server;
TCPSocketConnection client;
server.bind(PORT);
server.listen();
while(true){
printf("Waiting for connection...\r\n");
int32_t status = server.accept(client);
printf("Connection from: %s\r\n", client.get_address());
if (status>=0)
{
char buffer[1024] = {};
int n= client.receive(buffer, 1023);
printf("Received Data: %d\n\r\n\r%.*s\n\r",strlen(buffer),strlen(buffer),buffer);
//GET /q=open+sesame HTTP/1.1
char item[13];
for(int k=0; k<13; k++){
item[k]= buffer[k+5];
}
char Body[1024] = {};
if (strcmp(item,"q=open+sesame")==0){
sprintf(Body,"<html><title></title><body><h1>Door Open</h1></body></html>\n\r\n\r");
//move the servo to open the door,
myservo = 1;
// wait for 5 seconds, close the door
wait(5);
//close the door
myservo = 0;
}
else{
sprintf(Body,"<html><title></title><body><h1>Door Not Open</h1></body></html>\n\r\n\r");
//do nothing with the door
}
char Header[256] = {};
sprintf(Header,"HTTP/1.1 200 OK\n\rContent-Length: %d\n\rContent- Type: text/html\n\rConnection: Keep-Alive\n\r\n\r",strlen(Body));
client.send(Header,strlen(Header));
client.send(Body,strlen(Body));
client.close();
}
}
}
int main() {
EthernetInterface eth;
eth.init();
eth.connect();
printf("\r\nServer IP Address is %s\r\n", eth.getIPAddress());
//close the door
myservo = 0;
//wait for instructions
web_server("");
while(1){}
}