USART PIC a Pic de comunicació

I

Ianb007

Guest
Estic usant 2x PIC18f4431 de. El PIC es llegeix Portbò unes quantes i l'envia a través de USART (TX). El PIC altres es rep el senyal a través de la USART RX pin i després l'envia al seu Portbò unes quantes. Jo nowhave el problema que la primera foto que diu el seu port B, quan es mostra en un oscil · loscopi, mostra una llum parpellejant d'un parell de agulles estar "a", mentre que ells no tenen res connectat a ells o es troben en la posició "off". Dins i fora de sentit, una de 5V s'aplica a una agulla i 0V/nothing respectivament. He tractat de posar de 1K i 10K enderrocar les resistències del port B, però això no sembla ajudar. Encara que tingui només l'enviament per connectat a l'alimentació i llegir el port i la sortida d'ell a través de USART, el senyal de USART sembla a tenir una mica vacil · lant entre la claredat "en" bits. Sembla que la foto és de vegades la lectura d'un pin que s'encén quan està apagat. Estic usant una velocitat de 9.615kHz. Cap raó coneguda o solució?
 
Jo mai he fet servir aquesta PIC en particular, però basat en l'experiència amb una gran quantitat d'altres tipus, li suggereixo que busqui en el codi d'inicialització Portbò unes quantes, en particular, assegurar que no els perifèrics interns amb altres les potes. És fàcil passar per alt que (per exemple) és possible que la sortida PWM en un pin, llavors la lectura cap enrere en el com si fos una entrada dedicada. En teoria, si el port està correctament configurat com a entrada, els pins ha surar perquè la seva pull-up o pull-down resistències ha lligar les entrades a un nivell lògic fix, res dins de la IC ha de ser capaç de canviar això. Es pot publicar el seu codi d'inicialització? Brian.
 
Hola. He intentat utilitzar el 18F4520, però no tenia els mateixos resultats. Vaig a fer una ullada a la configuració de la meva configuració també. Aquí està el meu codi: # include # include void main () / / funció principal {TRISB = 1 / / Transmetre dades del registre d'inicialització activat. TRISA = 1 / / Transmetre dades del registre d'inicialització activat. OSCCON = 0xF0; / / oscil · lador intern estableix 8MHz Portbò unes quantes = 0; / / inicialitzar el port B a ser 0 o "off" PORTA = 0; / / inicialitzar el port A com 0 o "apagat", mentre que (1) / / Inici un bucle infinit {OpenUSART (USART_TX_INT_OFF i USART_RX_INT_OFF i USART_ASYNCH_MODE i USART_EIGHT_BIT i USART_CONT_RX i USART_BRGH_LOW, 12); / / USART línia d'obertura i la configuració d'ajustaments de USART. SPBRG = 12 és el valor, mentre que la velocitat de transmissió (1) {/ / bucle infinit inici WriteUSART (Portbò unes quantes); / / Escriure l'entrada del port B per al USART TX pin}}}
 
Crec que TRISB ha 0xff i no una !!!!!! com vulgui alll el port a l'entrada i no només RB0 [COLOR = "Silver"] [SIZE = 1 ]---------- missatge afegit a les 18:28 --------- - post anterior va ser a les 18:26 MIDA ----------[/] [/color] també cal la pena de pull-ups (o pull-downs que vostè trii)
 
També pots veure el paràmetre que es passa a "WriteUSART ()", ha de ser el nom del port o els bytes a enviar? Una altra cosa a comprovar és si el buffer USART està buida abans de tornar a carregar. En un bucle constant que pot ser "alimentar a la força" abans que hagi tingut temps per buidar-se. Brian.
 

Welcome to EDABoard.com

Sponsor

Back
Top