fbpx

Expresate

Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:

Avisos
Vaciar todo

Problema comunicación RS232 (Pc - Pic 16f877)

7 Respuestas
2 Usuarios
0 Reactions
4,623 Visitas
xavier
Respuestas: 16
Topic starter
(@xavier)
Active Member
Registrado: hace 19 años

Hola! Como va el verano, bien espero jejeje a ver, tengo un pequeño problema (que cada vez se hace mas grande, no se si por obsesión o porque pero ya me esta ganando terreno) intentare plantearlo bien, estoy intentando comunicar mi Pc (Windows Xp, 1 puerto Com libre) con mi Pic 16f877 (que hasta ahora esta funcioando bien), lo consegui en los ordenadores de clase, los cuales funcionaban con Windows 98, pero al llegar a casa no me funciona nada en absoluto, lo intente con un ordenador viejo con Windows 98, le añadi otro puerto serie porque el raton tiene que ir conectado al Com1, y nada, con mi ordenador de siempre en Xp, y nada, con el mismo y Windows 98, y nada, a todo esto decir que estoy utilizando una aplicacion que hice con Visual Basic 4.0 con el control Mscomm. Leí por ahi que este control en Xp no funciona, a lo que intente "migrar" el codigo a Visual Studio 2005 (nada xD) por lo que me puse a volver a escribirlo, con el nuevo control que sustituye al MsComm llamado SerialPort. La aplicaión como ya supondreis es sencilla 100%, tan solo enviar un numero y que el Pic lo saque por otro puerto, aqui dejo el codigo del programita (que creo yo que ahi debe estar el error pero no consigo verlo)
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
SerialPort1.Open()
TextBox1.Text = TextBox1.Text & "Puerto Com1 abierto con exito." & vbCrLf
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim dato As String
dato = TextBox2.Text
SerialPort1.Write(dato)
SerialPort1.Close()
TextBox1.Text = "Ha sido enviado el dato " & TextBox2.Text & vbCrLf
TextBox1.Text = TextBox1.Text & "Puerto Com1 cerrado con exito." & vbCrLf
End Sub

y el del Pic
#include <pic1687x>

unsigned char dato=0;

void main (void)
{
ADCON1=0x06;
TRISB=0x00;
TRISC=0xBF;
RCSTA=0x90;
TXSTA=0x06;
SPBRG=25;
RCIE=1;
INTCON=0xC0;

PORTB=0x00;

while(1);
}

void interrupt rec_ser (void)
{
if (RCIF==1)
{
dato=RCREG;
PORTB=dato;
}
}

Decir que con el codigo del pic he intentado mil cosas, y este siempre me ha funcionado (en clase), con el que tengo mas dudas es con de Visual Studio, pero ya no se por donde cogerme, a ver si alguien es tan amable y me echa un cable o intenta "redireccionarme", voy a intentar encontrar una controlador PCI para añadir algun puerto serie por si el mio estuviera dañado (es que los hijos de... han puesto los puntos de soldadura del COM2 en la placa base pero no estan los pins para conectarlos, por eso lo de la tarjeta PCI), he intentado con el HyperTerminal pero con este aun peor, ya no se si es el ordenador o yo o el Pic y ya no se por donde cogerlo, venga muchas gracias de antemano.

Salud!

Responder
6 respuestas
juliovmd
Respuestas: 202
(@juliovmd)
Ardero
Registrado: hace 19 años

Vale, ya se quien eres, bueno... pues revisa el PC a ver que puede ser eso... O si alguien por aqui ya tiene hecho esto en C y te ayuda...pues mejor que mejor

Saludos

Responder
xavier
Respuestas: 16
Topic starter
(@xavier)
Active Member
Registrado: hace 19 años

Siiii!! ya funciona... de aquella manera pero funciona!!! por lo visto es un problema en la placa del pic (que aun tengo que revisar XDD 😆 ) pero bueno ya recibo algo, bueno voy a comprarme un "polo" (helado para el resto del mundo xDD) y a dar una vuelta, YUJU! gracias Julio por contestar, deww!

Salud!

Responder
Página 2 / 2
Compartir: