从"常量字符*"到"常量uint8_t*"的转换无效
Invalid Conversion from 'const char*' to 'const uint8_t*'
我在尝试编写的Arduino程序上遇到了一个小问题,以读取通过串行连接从Processing发送的命令。处理应该通过串行连接向Arduino发送"H"或"L"。此值作为字符存储在我的程序中,但是当我尝试执行 Serial.write("值:%c",val)时,出现"从 'const char*' 到 'const uint8_t*'的无效转换"错误。如果有人能帮我解决这个问题,那就太好了。我真的需要弄清楚这个值是什么,这样我才能重写我的程序。谢谢!
代码如下:
char val; // variable to receive data from the serial port
int ledpin = 8; // LED connected to pin 48 (on-board LED)
void setup() {
pinMode(ledpin, OUTPUT); // pin 48 (on-board LED) as OUTPUT
Serial.begin(9600); // start serial communication at 9600bps
}
void loop() {
while (Serial.available()>0){
val=Serial.read();
}
//Serial.write("Value: %c",(char)val);
if( val == 'H' ) // if 'H' was received
{
Serial.write("Setting Value to High n");
digitalWrite(ledpin, HIGH); // turn ON the LED
} else {
Serial.write("Setting Value to Low n");
digitalWrite(ledpin, LOW); // otherwise turn it OFF
}
Serial.flush();
delay(100); // wait 100ms for next reading
}
Serial.write
不是printf
- 它不接受格式字符串作为参数。查看文档。
代替 serial.write: Serial.print 或 Serial.println(witch prints 在字符串 \r 的末尾)
相关文章:
- 为什么下面带有非常量转换函数的代码没有歧义?
- 如何将变量内容常量转换为 std::array 的大小?
- 将结构C++成员从非常量转换为常量
- 意外 (IMO) 常量转换警告
- 警告:ISO C++禁止将字符串常量转换为'char*' [-Wwrite-strings]
- 为什么无法将常量 X 转换为 X &?
- 重载常量和非常量转换运算符返回数组类型时出现 MSVC 错误 C2593
- 将字符串常量转换为char
- 警告:ISO C++禁止将静态“constexpr char*”数据成员的字符串常量转换为“char*”
- 错误C2662无法从常量转换为引用
- 常量转换运算符的行为
- 如何在 C 中将多字符常量转换为整数
- 从字符串常量转换,c++ 中的指针
- 从字符串常量转换为字符*
- 在这里做常量转换安全吗
- boost序列化错误C4308:负整数常量转换为无符号类型
- 不赞成从字符串常量转换为“char*”[-Wwrite strings]
- C++非常量到常量转换编译错误
- C++-不赞成在第三方标头中从字符串常量转换为“char*”
- 空指针常量转换为右值