为什么我的指针数组分配不起作用
Why is my pointer array assignment not working?
我有这个方法原型
bool setMacParam(const char* paramName, const uint8_t* paramValue, uint16_t size)
{
debugPrint("[setMacParam] "); debugPrint(paramName); debugPrint("= [array]");
this->loraStream->print(STR_CMD_SET);
this->loraStream->print(paramName);
for (uint16_t i = 0; i < size; ++i) {
this->loraStream->print(static_cast<char>(NIBBLE_TO_HEX_CHAR(HIGH_NIBBLE(paramValue[i]))));
this->loraStream->print(static_cast<char>(NIBBLE_TO_HEX_CHAR(LOW_NIBBLE(paramValue[i]))));
}
this->loraStream->print(CRLF);
return expectOK();}
我想将我的变量 devEUI 分配给参数值,我正在做这个调用
uint8_t DevEUI2[8] = { 0x00, 0x00, 0x00, 0x00, 0x41, 0x47, 0x30, 0x39 };
setMacParam(STR_DEV_EUI,DevEUI2,8);
但是我的终端显示参数值为空
[setMacParam] deveui = [array]
我做错了什么?
debugPrint
将数组解释为一个字节数组,其中每个字节都是一个字符;因为第一个值是0x00,顺便说一下,与表示"字符串末尾"的"\0"字符的值相同。
此外,另一个值将由它们的 ascii 表示形式表示,它永远不会与字节值相同。
Serial 的 print(( 接受一些参数,这些参数告诉函数打印十六进制、十进制、八进制或二进制的 ascii 表示;也许你的 SerialUSB 也支持它们。