请多多包涵,我是 C 的新手,我正在尝试对 Arduino 进行编程。我想编写一个程序,它吐出一个特定长度的数据帧,字节值范围为 0-255。重现错误的最少代码在下面的代码块中。编译时收到以下错误:
sketch_apr09b.cpp: In function ‘char assembleFrame()’: sketch_apr09b.cpp:9:10: error: invalid conversion from ‘char*’ to ‘char’
现在我的印象是我误用了“返回框架”,但我就是不知道出了什么问题。
char assembleFrame() {
char frame[] = {
0x61 , 0x62 , 0x63
};
return frame;
}
void setup() {
Serial.begin( 115200 );
};
void loop() {
char frame = assembleFrame();
Serial.print( frame );
}
当我在接收 PC 上运行 hexdump 时,我想看到:
00000000 61 62 63 |abc|
00000003
我发现了很多类似的问题,无法弄清楚我做错了什么。
编辑:这是我到目前为止想出的,但是收到了错误的数据。我想我正在用这个发送指向实际数据的指针。
byte *assembleFrame() {
byte frame[] = { 4 , 'a' , 'b' , 'c' };
return frame;
}
void setup() {
Serial.begin( 115200 );
};
void loop() {
byte *frame = assembleFrame();
Serial.write( frame , frame[ 0 ] );
}