salut,
je bloque sur un problème bizare :
j'utilise un pic24F08KA101.
je souhaite utiliser l'UART1 pour communiquer avec un périphérique.
il est dit 1 stop bit, pas de parité, autobaud, vitesse de base :4800baud.
j'arrive a envoyer des données, mon périphérique répond, mais le buffer d'entree ne se remplis pas...
j'ai vérifié a l'oscilloscope, les temps sont bon, j'ai exactement le meme temps entre le pic et le périphérique.
voici le code d'initialisation du port :
Code:// on ouvre le port 1 U1BRG=103; U1STA = 0; U1MODE = 0x8000; //Enable Uart for 8-bit data no parity, 1 STOP bit U1STAbits.UTXEN = 1; //Enable Transmit
l'envoi :
Code:void envoyer(char* val) { int i = 0; while(!U1STAbits.TRMT); // on attend que la transmission précédente se termine while (val[i] != 0) // on parcours la liste { U1TXREG = val[i]; // on envoie caractere par caractere i++; } }
la reception :
Code:unsigned char val; while(U1STAbits.URXDA) //si un caractère est dans le buffer d'entree { val = U1RXREG; IFS0bits.U1RXIF = 0; }
il ne lis aucune données.
j'ai essayé de mettre un BP dans la boucle de la reception et on ne rentre jamais dedans.
y a t-il une particularité dans la config de ces pic ou j'ai merdé avec le code ???
merci d'avance,
marc
-----