skubios pagalbos reikia: kompiuterio MSP430 per serial port

A

anand_navale

Guest
Aš dirbu su projektu, kuris apima nuosekliojo ryšio tarp MSP430f1232 ir PC ne Baud norma 38.400 b / s.Galiu gauti duomenis iš kompiuterio pabaigoje MSP430, bet ne priimant duomenis mikrovaldiklį pabaigoje iš kompiuterio sėkmę.

Mikrovaldiklį jau krištolo dažnis 4,00 MHz.Aš naudoju IAR Embedded Workbench plėtrai.

Iš USART0 iniciacijos atliekami naudojant šį kodą:

/ *
Pradės vertės UxBR ir UxMCTL registrai
nustatyti Baud Rate į 38,4 kHz tariant BRCLK = 4 MHz.
Šios vertės yra apskaičiuojamos pagal formules, pateiktas MSP430 Vartotojo vadovas.
*
# define UART_BAUD 0x0068
# define MODULATION_VAL 0x08

/ *
Initialize USART0 kaip UART
*
UCTL0 = SWRST / / Reset USART
UCTL0 | = char; / / 8-bitų kodavimo
UTCTL0 | = SSEL0 / / UCLK = ACLK
UBR00 = UART_BAUD & 0xFF / / Configure Baud Rate
UBR10 = (UART_BAUD>>

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Vėsus" border="0" />

& 0xFF;
UMCTL0 = MODULATION_VAL / / Įjungti moduliacija
ME2 | = UTXE0 | URXE0 / / Įjungti UART TXD / RXD
UCTL0 & = ~ SWRST / / Leidiniai USART
IE2 | = URXIE0 / / Įjungti USART RX pertrauktiISR į priėmimo duomenų yra, kaip nurodyta toliau:

# pragma vector = USART0RX_VECTOR
__interrupt tuščia UART0_recv_handler (tuščia)
(
unsigned char rx_data;

/ / Skaityti UART gauti buferis
rx_data = RXBUF0;
)

Pagalba skubiai reikia.Thanx iš anksto,
Anand

 
Kodas atrodo gerai.Darant prielaidą, jūs nepamirškite nustatyti GIE ar kažką, galite perskaityti šia nuoroda (silicio leidus apie USART ISR paslauga).
http://www.ti.com/cgi-bin/sc/buglist.cgi?bug=US13

 
Paaiškėjo, kad prietaisas lenta aparatūros nepalaiko 38,4 K Baud Rate.Kodas veikia patenkinamai ne 19,2 K Baud Rate po keičia UART_BAUD ir MODULATION_VAL vertybes.

Anyways thanx for the help.
Anand.

 

Welcome to EDABoard.com

Sponsor

Back
Top