Autor Tema: Duda con Puerto Serie y Lenguaje C  (Leído 7627 veces)

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

Desconectado sauron

  • PIC12
  • **
  • Mensajes: 78
Duda con Puerto Serie y Lenguaje C
« en: 23 de Agosto de 2009, 22:43:32 »
Hola compañeros.

Siempre he trabajado con turbo C, pero ahora me salió crear un programa para enviar datos por puerto serial de un PC a un PIC.

La parte del PIC está lista, así que ahora tengo que hacer la parte del PC. Tengo que hacerlo bajo windows, es decir, con su ventana correspondiente, así que supongo tengo que usar Borland C++.

Este es un ejemplo que vi por la web, pero creo que en windows no funciona....
Código: C
  1. #include <conio.h>
  2. #include <stdio.h>
  3. #include <bios.h>
  4.  
  5. int puerto,dato,envio,config,ultimo=0;
  6.  
  7. void main(void)
  8.   {
  9.   clrscr();
  10.   printf("Ingrese puerto COM a usar: ");
  11.   scanf("%d", &puerto);
  12.   while(puerto<1 || puerto>4)
  13.     {
  14.     clrscr();
  15.     printf("ERROR... Debe ingresar 1, 2, 3 o 4 !!!\n\n");
  16.     printf("Ingrese puerto COM a usar: ");
  17.     scanf("%d", &puerto);
  18.     }
  19.  
  20.   puerto--;
  21.   config=0x83;
  22.   bioscom(0,config,puerto);
  23.  
  24.   do
  25.     {
  26.     clrscr();
  27.     printf("Dato a enviar (ULTIMO: %d) --> ",ultimo);
  28.     scanf("%d", &dato);
  29.     while(dato<0 || dato>255)
  30.       {
  31.       printf("ERROR... Ingrese dato de 8 bits !!!\n\n!);
  32.      printf("Dato a enviar (ULTIMO: %d) --> ",ultimo);
  33.      scanf("%d", &dato);
  34.      }
  35.    envio=bioscom(1,dato,puerto);
  36.    ultimo=dato;
  37.    }while(1==1);
  38.  }

Me pueden dar una mano con ésto?, ya que la información que he visto es sobre C# o Visual, entonces, ¿es complicado hacerlo en C y es mejor usar el C#?

Gracias!
« Última modificación: 23 de Agosto de 2009, 22:58:21 por sauron »

Desconectado jhozate

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1698
Re: Duda con Puerto Serie y Lenguaje C
« Respuesta #1 en: 23 de Agosto de 2009, 23:56:13 »
mira estehilo...es relativamente facil con C# yo apenas empiezo pero de pronto es mas trabajable el puerto serie y la interfaz grafica con este software.

saludos
« Última modificación: 24 de Agosto de 2009, 00:07:46 por jhozate »
Ser Colombiano es un Premio, Saludos desde CALI-COLOMBIA

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: Duda con Puerto Serie y Lenguaje C
« Respuesta #2 en: 24 de Agosto de 2009, 00:05:48 »
mira este hilo...es relativamente facil con C# yo apenas empiezo pero de pronto es mas trabajable el puerto serie y la interfaz grafica con este software.

saludos

erm... no creo que un video de errebede le sirva de mucho  :D

Creo que se te pasó el link Jhozate, aquí un link correcto...

http://www.todopic.com.ar/foros/index.php?topic=26052.0

Desconectado jhozate

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1698
Re: Duda con Puerto Serie y Lenguaje C
« Respuesta #3 en: 24 de Agosto de 2009, 00:08:16 »
jajajajaja es el amor por mexico :mrgreen: :mrgreen: :mrgreen: :mrgreen: q cosas dios :mrgreen: :mrgreen: pero si, el link q te dio migsantiago te sirve mas q el mio, la idea era esa  :D :D :mrgreen:
Ser Colombiano es un Premio, Saludos desde CALI-COLOMBIA

Desconectado fabianjsm

  • PIC18
  • ****
  • Mensajes: 255
    • fabianjsm is on twitter
Re: Duda con Puerto Serie y Lenguaje C
« Respuesta #4 en: 24 de Agosto de 2009, 03:27:32 »
Una forma facil de escribir el puerto serie en C#:

// agregas este using
using System.IO.Ports;
// y este podria ser tu codigo...
SerialPort serie = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One);
serie.Open();
serie.Write("Hola, mudno!");
serie.Write(new byte[] {0x11, 0x22, 0x33, 0x44, 0x55}, 0, 3);
sere.Close();

Si queres atender el evento de dato recibido pordes hacer algo asi

public partial class MainForm : Form
{
    SerialPort serie;
    public MainForm()
    {
        serie = new SerialPort();
        serie.DataReceived += new SerialDataReceivedEventHandler(Recibir);
    }
    void Recibir(object sender, SerialDataReceivedEventArgs e)
    {
        // ahora si haces por ejemplo
        string s = serie.ReadExisting();
        // tenes en s los datos que enviaste desde el pic
    }
}
@fabianjsm is on twitter

Desconectado sauron

  • PIC12
  • **
  • Mensajes: 78
Re: Duda con Puerto Serie y Lenguaje C
« Respuesta #5 en: 24 de Agosto de 2009, 17:25:10 »
mira estehilo...es relativamente facil con C# yo apenas empiezo pero de pronto es mas trabajable el puerto serie y la interfaz grafica con este software.

Por un momento imaginé que rbd me iba a explicar con una canción... :D

Vale gracias por sus respuestas, no se ni pío de C#, pero si comentan que es relativamente sencillo, entonces empiezo con el código del compañero fabianjm (gracias) y estudio los comandos que allí se presentan.

Gracias jhozate y migsantiago por el link.

De todas maneras es posible que cuando tenga alguna tranca les pregunte de nuevo :mrgreen:

Desconectado jhozate

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1698
Re: Duda con Puerto Serie y Lenguaje C
« Respuesta #6 en: 24 de Agosto de 2009, 22:46:59 »
te agradeceria q postearas tus avances por q yo tambien empiezo con C#.
saludos
Ser Colombiano es un Premio, Saludos desde CALI-COLOMBIA