aidar_i писал(а): 27 фев 2021, 16:55
Я посмотрю, скорее, блок не рассчитан на повторное использование. Тогда не стояла передо мной такая задача.
я не спец в коде но возможно стоит обратить внимание
[scroll]
void loop()
{
if ((0))
{
esp_now_register_recv_cb(OnDataRecv);
}
if ((0))
{
str = (String(""));
str.toCharArray(char_array, str.length() + 1);
strcpy(myData.a, char_array);
esp_now_send(broadcastAddress0, (uint8_t *) &myData, sizeof(myData));
}
if ((0))
{
esp_now_register_recv_cb(OnDataRecv
1);
[/scroll]
и соотв далее где ошибка
[scroll]
void OnDataRecv(uint8_t * mac, uint8_t *incomingData, uint8_t len)
{
memcpy(&myData, incomingData, sizeof(myData));
Serial.print("Bytes received: ");
Serial.println(len);
Serial.println();
Out_153177633_245678552 = String (myData.a);
}
void OnDataRecv
1(uint8_t * mac, uint8_t *incomingData, uint8_t len)
{
memcpy(&myData, incomingData, sizeof(myData));
Serial.print("Bytes received: ");
Serial.println(len);
Serial.println();
Out_153177633_113783045 = String (myData.a);
[/scroll]
при этом компиляция проходит.
но работоспособность еще не проверял.
если блок заработает то вероятно стоит добавить нумерацию от номера блока в void loop
[scroll]
void loop()
{
if ((0))
{
esp_now_register_recv_cb(OnDataRecv
0);
}
if ((0))
{
str = (String(""));
str.toCharArray(char_array, str.length() + 1);
strcpy(myData.a, char_array);
esp_now_send(broadcastAddress0, (uint8_t *) &myData, sizeof(myData));
}
if ((0))
{
esp_now_register_recv_cb(OnDataRecv
1);
[/scroll]
[scroll]
void OnDataRecv
0(uint8_t * mac, uint8_t *incomingData, uint8_t len)
{
memcpy(&myData, incomingData, sizeof(myData));
Serial.print("Bytes received: ");
Serial.println(len);
Serial.println();
Out_153177633_245678552 = String (myData.a);
}
void OnDataRecv
1(uint8_t * mac, uint8_t *incomingData, uint8_t len)
{
memcpy(&myData, incomingData, sizeof(myData));
Serial.print("Bytes received: ");
Serial.println(len);
Serial.println();
Out_153177633_113783045 = String (myData.a);
[/scroll]