UART PROBLEMA

J

john2020

Guest
Hi all,

Aš dirbu su projektu ir naudoju 16F873 prietaisas.Bandau steigti

nuosekliojo ryšio su IPS.Bandau programuoti C, naudojant cc5x
Kompiliatorius.Turiu keletą pagrindinių kodą, kad i užprogramuoti lustą, kad ir buvo
tikisi pamatyti simbolių HyperTerminal kai aš tipo, bet i dont see
bet .. tai reiškia, kad jos neveikia, ir aš nesu tikras, kokia problema galėtų būti.I
prijungėte Pic MAX232 mikroschema, kuri yra prijungta prie TxD, RxD Pins
iš RS232 kabelis.Max232 lustas turi kondensatoriai conencted jai
pagal lapus ir tada teisingai kaiščiai yra prijungtas prie vynai
mikroschema, prijungta prie žemės ir VDD (5V).i havent prijungtas meistras

aišku, nieko daugiau.

Turiu įterptas mano kodą.Gal kas nors pasakys man, ką aš darau ne taip?

/ / # include <16F873.h>
# include "int16cxx.h"

# define CP_off | = 0x3F30
# define LVP | = 128
# pragma config CP_off, PWRTE = on, WDTE = off, fosc = SS, Boden = on, LVP

# pragma kilmės 4

pertraukti myInterrupt (void) / / interrup paslaugų įprastas adresu 4
(
int_save_registers
char rec;
if (RCIF) / / tai nuoseklųjį prievadą gauti nutraukti?
(
while (! TXIF) (/ / laukti eilės registre turi būti siunčiami, jei
dar kažkas ten
NOP ();
)
rec = RCREG / / gauti gautas pobūdis
TXREG = rec / / rašyti į registrą eilės -> pradžia
perdavimas
RCIF = 0; / / Reset serial port gavo serijos pertraukti
vėliava
)
int_restore_registers
)

tuščia InitUSART ()
(
PORTA = 0;
PORTB = 0;
PORTC = 0;
/ / TRISC.7 = 1;
/ / TRISC.6 = 0;

BRGH = 1; / / greitųjų serial port būdas
SPBRG = 25; / / Nustatykite 9.600 Baud 4 MHz oscillator
SYNC = 0; / / išvalyti sinchronizavimo bit; set_async_mode;
SPEN = 1; / / set serial port galimybę
TX9 = 0; / / 8-bit perdavimų
TXEN = 1 / / Enable perdavimas
RCIE = 1; / / Rx pertraukia yra pageidaujamas
RX9 = 0; / įjungti / 8-bit priėmimams
CREN = 1; / / įjungti priimamasis
)

tuščia initinit ()
(

GIE = 1; / / nustatyti globalinis Pertraukties
PEIE = 1 / / nustatyti periferinė Pertraukties
)

void main (void)
(
InitUSART ();
initinit ();
while (1) (
NOP ();
NOP ();
)
)

ačiū
All bus vertinami ...

linkėjimai
John

 
Labas!
Aplankykite svetainę www.microchipc.com ir rasite daug naudingų dalykų.Nors kodas yra parašyta HiTech C kompiliatorių, bet bent galėsite nustatyti įvairių registrų tinkamai.Aš jau išbandyti kodą.
Linkėjimai.

 
Aš tiesiog įdomu, apie tai:

# define CP_off | = 0x3F30
# define LVP | = 128
# pragma config CP_off, PWRTE = on, WDTE = off, fosc = SS, Boden = on, LVP

būtų išplėsti iki:
# pragma config | = 0x3F30, PWRTE = on, WDTE = off, fosc = SS, Boden = on, | = 128

strange isnt it?

Taip pat, jei naudojate 4 MHz XTAL reikia nustatyti generatoriaus režimas XT

PS please don't get me wrong, bet jūs parašėte "šimtai" klausimus, kurie jums tikrai tikri, kad turite visus atsakymus gavote?

nuoširdžiausi linkėjimai

 

Welcome to EDABoard.com

Sponsor

Back
Top