【发布时间】:2018-06-24 02:24:19
【问题描述】:
我需要发送一个保存在变量中的值。当试图在我的有效负载中传递它时,它一直引用 mydata 的初始值,这是不成功的测试。
static uint8_t *mydatapnt;
uint8_t *strdata = "Successfull test";
static uint8_t mydata [] = "Incorrect test";
void send(){
if (LMIC.opmode & OP_TXRXPEND) {
Serial.println(F("OP_TXRXPEND, not sending"));
} else {
// Prepare upstream data transmission at the next possible time.
LMIC_setTxData2(1, mydata, sizeof(mydata)-1, 0);
Serial.println(F("Packet queued"));
/
}
void setup(){
*mydata = mydatapnt;
}
void loop(){
*mydatapnt = strdata;
Serial.println(*mydatapnt + "");
}
我到底做错了什么?我应该收到“成功的测试”。 你可以找到完整的代码项目here
【问题讨论】:
-
首先,启用警告。其次,
*mydata = mydatapnt;并没有按照你的想法去做。 -
strdata在哪里使用? -
*mydatapnt = strdata;是未定义的行为(因为mydatapnt未初始化,即使它不是您复制字符串的方式) -
@Lundin *mydatapnt 应该是 *mtdatapnt = strdata。解决了这个问题。
-
*mydatapnt + ""不连接。你真的必须阅读字符串。