es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo crear un hilo en mbed?

Utilice el joystick para controlar el cursor del ratón. Utilice la pantalla LCD para leer la temperatura del sensor de temperatura. Ejecutando en 2 hilos individuales.

/*
 * Copyright (c) 2006-2020 Arm Limited and affiliates.
 * SPDX-License-Identifier: Apache-2.0
 */

#include "mbed.h"
#include "USBMouse.h"
#include "LM75B.h"
#include "C12832.h"

Thread thread;
Thread thread1;
//Thread thread2;
//Thread thread3;
//Thread thread4;

USBMouse mouse;
// x and y axis of the joystick
AnalogIn ainx(A0);
AnalogIn ainy(A1);
BusIn* input = new BusIn(p15, p12, p13, p16);
int16_t x;
int16_t y;

C12832 lcd(p5, p7, p6, p8, p11);

LM75B sensor(p28, p27);
Serial pc(USBTX, USBRX);

void MouseCursor() {
   while (1){
       int state = input->read();  // get current state from input
       x = 0;
       y = 0;

       switch(state & input->mask()) { //mask bits to test
           case 0x0:
               // do nothing - stick neutral position
               break;
           case 0x1:
               // stick down (relative to LCD screen)
               y = -1;
               break;
           case 0x2:
               // stick up
               y = 1;
               break;
           case 0x4:
               // stick left
               x = -1;
               break;
           case 0x8:
               // stick right
               x = 1;
       }

       // moves mouse to specified x, y coordinates on screen
       mouse.move(x, y);
       wait_us(500);
   } 
}

void TemperatureSensor(){
    //Try to open the LM75B
    if (sensor.open()) {
        printf("¡Dispositivo detectado!\n");

        while (1) {
            lcd.cls();
            lcd.locate(0,3);
            lcd.printf("Temp = %.3f\n", (float)sensor);
            wait(1.0);
        }

    } else {
        error("¡Dispositivo no detectado!\n");
    }
}

int main() {
   thread.start(MouseCursor);
   thread1.start(TemperatureSensor);
}

La información de error es:
Error: Nombre de tipo desconocido ‘Serial’ en “main.cpp”, Línea: 27, Col: 1

Estos son los enlaces relacionados:
https://os.mbed.com/docs/mbed-os/v6.15/apis/usbmouse.html ,
https://os.mbed.com/docs/mbed-os/v6.15/program-setup/concepts.html ,
https://os.mbed.com/cookbook/mbed-application-board#11-lm75b-temperature-sensor .

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error indica que hay un nombre de tipo desconocido ‘Serial’ en la línea 27 del código. Para solucionar este error, asegúrate de incluir el archivo de encabezado para el tipo ‘Serial’. En este caso, parece que falta el archivo de encabezado para ‘Serial’, por lo que necesitas agregar la siguiente línea al inicio del código:

    #include "mbed.h"
    

    Este archivo de encabezado contiene las definiciones para el tipo ‘Serial’, entre otras cosas. Una vez que agregues esta línea, el código debería compilar sin errores.

Comments are closed.