Что такое «нет подходящей функции для вызова println (decode_results *)»? - PullRequest
0 голосов
/ 08 июня 2019

У меня есть пример кода, и я хочу напечатать переменные в журнале, в частности, переменную с именем &results Я написал строку в коде в конце void loop(), чтобы напечатать переменную для последовательной печати. вне.

Это не полный код, а большой сегмент, по крайней мере.

{
  Serial.begin(9600);
  Serial.println("IR Receiver Button Decode"); 
  irrecv.enableIRIn(); // Start the receiver

}/*--(end setup )---*/


void loop()   /*----( LOOP: RUNS CONSTANTLY )----*/
{
  if (irrecv.decode(&results)) // have we received an IR signal? &results is 
  the variable
  Serial.println(&results)   //<-- My line of code

  {
    translateIR(); 
    irrecv.resume(); // receive the next value
  }  
}/* --(end main loop )-- */

Я ожидал, что вывод будет содержимым переменной, но во время компиляции он выдох no matching function for call to "println(decode_results*)".

1 Ответ

0 голосов
/ 10 июня 2019

Вы не можете просто использовать Arduino print для печати C-структур.Вы можете печатать только простые типы данных C, такие как float, String, int и т. Д. Поэтому вам нужно печатать каждое поле вашей структуры отдельно.Я не знаю decode_results, но вы можете напечатать его поля примерно так:

{
    Serial.begin(9600);
    Serial.println("IR Receiver Button Decode");
    irrecv.enableIRIn(); // Start the receiver

} /*--(end setup )---*/

void loop() /*----( LOOP: RUNS CONSTANTLY )----*/
{
    if (irrecv.decode(&results)) // have we received an IR signal? &results is the variable
    {
        Serial.print("Results: ");
        Serial.print(results.field1); // first field
        Serial.print(" , ");
        Serial.println(results.field2); // second field
    }
    translateIR();
    irrecv.resume(); // receive the next value
} /* --(end main loop )-- */
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...