c - 我在 Arduino 网络服务器中显示浮点变量时遇到问题
问题描述
我正在使用Arduino Uno,ENC28j60。使用rbbb_server 示例。
我正在使用的库:<EtherCard.h>
从下面的代码中可以看出,我试图在主页函数中使用dtostrf()将我的 Float var 转换为 Str,因为emit_p()不能接受浮点 var。虽然Serial.println(temp1)工作正常,但在浏览器中,显示变量时出现问题(添加图片)。我一直在寻找解决方案,但不幸的是找不到任何解决方案。将不胜感激任何建议。
#include <EtherCard.h>
static byte mymac[] = { 0x74,0x69,0x69,0x2D,0x30,0x31 };
static byte myip[] = { 192,168,1,203 };
byte Ethernet::buffer[500];
BufferFiller bfill;
static word homePage() {
String temp1;
float val = 311.322;
char s1[10];
temp1 = dtostrf(val,3,2,s1);
bfill = ether.tcpOffset();
bfill.emit_p(PSTR(
"HTTP/1.0 200 OK\r\n"
"Content-Type: text/html\r\n"
"Pragma: no-cache\r\n"
"\r\n"
"<meta http-equiv='refresh' content='1'/>"
"<title>RBBB server</title>"
"<h1>my val:$S</h1>"),
temp1);
Serial.println(temp1);
return bfill.position();
}
void setup () {
Serial.begin(57600);
if (ether.begin(sizeof Ethernet::buffer, mymac, SS) == 0)
Serial.println(F("Failed to access Ethernet controller"));
ether.staticSetup(myip);
}
void loop () {
word len = ether.packetReceive();
word pos = ether.packetLoop(len);
if (pos)
ether.httpServerReply(homePage());
}
解决方案
推荐阅读
- slack-api - 找出您的 Slack 应用程序是否被工作区批准/阻止的编程方式?
- html - 为什么我的链接在链接文本之外可以点击
- flutter - Flutter Web 不滚动
- amazon-web-services - AWS Lambda:有没有一种方法可以让我在执行时观看函数打印的实时日志
- python-3.x - 为什么合并后附加列不起作用?
- java - 更新电子邮件在 Auth Firebase 中不起作用
- postgresql - 使用数字参数的动态查询中的表名替换
- neo4j - 在 Neo4j 中导入 csv 文件?
- c# - 在 .NET CORE 3.1 中打开 Excel 文件,编辑并另存为流
- python - 在python中使用迭代器范围进行迭代