Proyecto Dev C

Iniciado por elcheco, 9 Diciembre 2018, 19:46 PM

0 Miembros y 1 Visitante están viendo este tema.

elcheco

Código (cpp) [Seleccionar]
#include <stdlib.h>
#include <stdio.h>
#include <Windows.h>
#include <unistd.h>

#include "rs232.h"
#include "rs232.c"

//CONFIGURACION DEL PUERTO DE COMUNICACION CON LA ARDUINO UNO.
int cport_nr=4;              //dev/ttyS4, COM2 EN WINDOWS, VER INFORMACION EN LINK
int bdrate=9600;             //VELOCIDAD DE PUERTO
char mode[]={'8','N','1',0}; //CONFIGURACION DE PUERTO SERIAL
void DATA_IN();              //FUNCION DE DATA_IN DE DATOS PUERTO SERIAL
char cadena[37];             //INFORMACION DE LOS SENSORES DEL LA TARJETA DE PERIFERICOS
                             // POT1 POT2 A-EXT LDR SW1 SW2 TEMP

int main()
{
  if(RS232_OpenComport(cport_nr, bdrate, mode)) //VERIFICACION DE PUERTO SERIAL
    {
     printf("Can not open comport\n");
     return(0);
    }


   while(1)
       {
        DATA_IN();
        printf("%s\n",cadena);
        Sleep(500);
       }
       

}

void DATA_IN()
{
int i=0;
char datos[37];             
unsigned char buf[2];       
memset(cadena,0,strlen(cadena));
while(1)
      {
       RS232_PollComport(cport_nr, buf, 1);
       datos[i]=buf[0];
       if(i==0)
         while(datos[i] != '$')
              {
               RS232_PollComport(cport_nr, buf, 1);
               datos[i]=buf[0];
              }
       i++;
       if(datos[i-1]=='*')
         {
         
          datos[i]=0;           
          //printf("%s\n",datos);
          strcpy(cadena,datos);
          memset(datos,0,strlen(datos));
          buf[0]=0;
          i=0;
          break;
         }
       Sleep(5);
      }   
}

CitarBuenas estamos comenzando a usar los puertos serie de entrada y salida de datos con Dev C y Arduino UNO.
Tenemos el problema hacer encender 2 lamparas virtuales en Dev C por medio de 1 switch conectado al arduino pero no sabemos como recibir los datos para poder encender y apagar una de las dos lamparas

MAFUS

while(datos[i] != '$')
{
    RS232_PollComport(cport_nr, buf, 1);
    datos[i]=buf[0];
}
i++;

Tienes un problema con la adquisición de datos, aquí un ejemplo:
Vas adquiriendo datos pero terminan siempre en el mismo sitio así que realmente es cómo si no recibieras nada.