Как я могу присвоить значение массива символов массиву uint8_t?
У меня есть переменная массива символов, которая имеет значение. Мне нужно отправить это значение через LoRa. Библиотека, которую я использую для реализации LoRa, принимает массив uint8_t. Как я могу передать значение char[] в переменную uint8_t[] (и наоборот)?
if (Udp.parsePacket()) {
int udp_received = Udp.available();
char udp_buffer[udp_received + 1];
Udp.read(udp_buffer, udp_received);
udp_buffer[udp_received] = '\0';
uint8_t udp_to_lora[] = "???";
rf95.send(udp_to_lora, sizeof(udp_to_lora));
rf95.waitPacketSent();
}
Мне нужно передать udp_buffer в uint8_t udp_to_lora[].
@BrainTrance, 👍0
1 ответ
Лучший ответ:
▲ 0
У меня нет под рукой компилятора, но вы можете привести массив к типу char
и uint8_t
, похожих по размеру:
rf95.send((char*) udp_to_lora, sizeof(udp_to_lora));
,
@Michel Keijzers
Смотрите также:
- Как масштабировать растровое изображение (массив uint8_t) в Arduino?
- Самый прямой способ назначить байты Serial.read() массиву?
- New.cpp запрограммирован неправильно? Ардуино 1.8.9
- Какие накладные расходы и другие соображения существуют при использовании структуры по сравнению с классом?
- Что лучше использовать: #define или const int для констант?
- Функции со строковыми параметрами
- Замена нескольких выводов pinMode() и digitalWrite() на массив
- Как работать с аналоговыми контактами в цикле?
Как это могло быть так просто? Спасибо! Но помогите мне понять. Какова цель звездочки разыменования в этом приведении?, @BrainTrance
То же самое наоборот:
rf95.send((uint8_t*)udp_buffer, udp_received);
, @DataFiddlerchar
— это символ,char *
— это УКАЗАТЕЛЬ на символ. Однако массив символов — это то же самое, так как он указывает на первый символ текста., @Michel Keijzers«Какова цель звездочки разыменования в этом приведении?» Это в контексте. В спецификации типа (которой является приведение) "*" является частью типа, где он означает "указатель на". В значении это оператор разыменования и означает «значение того, на что [вещь] указывает», или, более буквально, «значение, содержащееся в ячейке памяти, адрес которой является значением [вещи]». Расположение во множественном числе, потому что память Arduino, адресуемая по байтам, большинство переменных являются многобайтовыми., @JRobert
разыменование равно
*a
, @Juraj