Usando un programa incrustado, Code Composer Studio 6.0.1,
Intento configurar UART para comunicarse entre MSP430F6736A y mi PC. Utilizando un convertidor USB / RS485 (2 vire (A, B)).
Para enviar datos usando HERCULES (aplicación para probar la comunicación).
#include <msp430.h>
#include <msp430f6736.h>
/*
* main.c
*/
int main(void) {
WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer
P4DIR |= BIT6;
P4OUT &= ~BIT6;
//clock
//UCSCTL0 |= DCO_0 | MOD_0;
//UCSCTL1 |= DCORSEL_0;
// Config pinov P2.2 a P2.3 na ich funkciu(Rx a Tx)
P2SEL |= BIT2 + BIT3; // RX and TX pins
// config comm
UCA1CTLW0 |= UCSWRST; // reset UCA1 for config
UCA1CTLW0 |= UCSSEL_1 ; // ACLK as source clock
UCA1MCTLW |= UCBRS0;
// Baudrate from datasheet
UCA1BR0 = 1; // 1200 Baud
UCA1BR1 = 11; // 1200 Baud
UCA1CTLW0 &= ~UCSWRST; // UCA1 back from reset
// interrupts enabled for RT and TX
UCA1IE |= UCTXIE | UCTXIE;
__bis_SR_register(GIE); // global interupt enabled
}
#pragma vector=USCI_A1_VECTOR
__interrupt void Recieve_ISR(void)
{
while (!UCA1IFG) // USCI_A0 TX buffer ready?
{
P4DIR |= BIT6;
P4OUT &= ~BIT6;
UCA1RXBUF = UCA1TXBUF; // TX -&gt; RXed character
}
}
Todo lo que quiero es cuando envío datos (para el número 5) desde HERCULES (config igual: 1200 baudios, sin paridad, 1 bit de parada) Quiero recibirlos y encender el LED. Pero no funciona.
En algún lugar de este código falta algo o está mal escrito. ,. Tengo una gran cabeza de las hojas de datos, ¿puede alguien ayudarme?