为什么我的指针数组分配不起作用

Why is my pointer array assignment not working?

本文关键字:分配 不起作用 数组 指针 我的 为什么      更新时间:2023-10-16

我有这个方法原型

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 也支持它们。