A
anand_navale
Guest
Estou trabalhando em um projeto que envolve a comunicação serial entre MSP430f1232 e PC na taxa de transmissão de 38.400 b / s.Eu sou capaz de receber dados no final do PC do MSP430, mas não têm sucesso no recebimento de dados no final do microcontrolador a partir do PC.
O microcontrolador tem uma freqüência de cristal de 4,00 MHz.Estou usando o IAR Embedded Workbench para o desenvolvimento.
A inicialização de USART0 é feito usando o seguinte código:
/ *
Valores de inicialização para UxBR e UxMCTL registros
para definir a taxa de transmissão de 38,4 KHz assumindo BRCLK MHz = 4.
Estes valores são calculados pelas fórmulas indicadas no userguide MSP430.
* /
# define UART_BAUD 0x0068
# define MODULATION_VAL 0x08
/ *
Inicializar USART0 como UART
* /
UCTL0 = SWRST; USART / / Reset
UCTL0 | = CHAR; / / 8-bit caracteres
UTCTL0 | = SSEL0 / / = UCLK ACLK
UBR00 = UART_BAUD & 0xff; / taxa / Configure baud
UBR10 = (UART_BAUD>>
<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Legal" border="0" />
& 0xff;
UMCTL0 = MODULATION_VAL; / / Enable modulação
ME2 | = UTXE0 | URXE0; / / Enable UART TXD / RXD
UCTL0 & = ~ SWRST; / / Release USART
IE2 | = URXIE0; / / Enable USART RX interruptO ISR para a recepção dos dados é conforme abaixo:
# pragma vector = USART0RX_VECTOR
__interrupt void UART0_recv_handler (void)
(
rx_data unsigned char;
/ / Read buffer de recepção da UART
rx_data = RXBUF0;
)
Ajuda é urgente.Thanx in advance,
Anand
O microcontrolador tem uma freqüência de cristal de 4,00 MHz.Estou usando o IAR Embedded Workbench para o desenvolvimento.
A inicialização de USART0 é feito usando o seguinte código:
/ *
Valores de inicialização para UxBR e UxMCTL registros
para definir a taxa de transmissão de 38,4 KHz assumindo BRCLK MHz = 4.
Estes valores são calculados pelas fórmulas indicadas no userguide MSP430.
* /
# define UART_BAUD 0x0068
# define MODULATION_VAL 0x08
/ *
Inicializar USART0 como UART
* /
UCTL0 = SWRST; USART / / Reset
UCTL0 | = CHAR; / / 8-bit caracteres
UTCTL0 | = SSEL0 / / = UCLK ACLK
UBR00 = UART_BAUD & 0xff; / taxa / Configure baud
UBR10 = (UART_BAUD>>
<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Legal" border="0" />
& 0xff;
UMCTL0 = MODULATION_VAL; / / Enable modulação
ME2 | = UTXE0 | URXE0; / / Enable UART TXD / RXD
UCTL0 & = ~ SWRST; / / Release USART
IE2 | = URXIE0; / / Enable USART RX interruptO ISR para a recepção dos dados é conforme abaixo:
# pragma vector = USART0RX_VECTOR
__interrupt void UART0_recv_handler (void)
(
rx_data unsigned char;
/ / Read buffer de recepção da UART
rx_data = RXBUF0;
)
Ajuda é urgente.Thanx in advance,
Anand