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
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