ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
29 марта
609239
olegall (14.07.2015 09:37 - 09:55, просмотров: 12342) MBedder
UART не принимает больше одного байта. Контроллер MSP430F4152 Если принимаю 2 байта, то схватывает их, то нет (вижу JTAG дебаггером). 1 байт всегда принимает. Причём работало раньше всё нормально, принимались 14 байт, а в один момент работать перестало. Что не так? Всё настроил по даташиту void initUART() { P6SEL |= BIT5+BIT6; // P6.5,6 = USCI_A0 RXD/TXD UCA0CTL1 |= UCSSEL_1; // CLK = ACLK UCA0BR0 = 0x03; // 32k/9600 - 3.41 UCA0BR1 = 0x00; // UCA0MCTL= 0x4A; // Modulation UCA0CTL1 &= ~UCSWRST; // **Initialize USCI state machine** IE2 |= UCA0RXIE; // Enable USCI_A0 RX interrupt rxBufferCnt = 0; } Прерывание: #pragma vector=USCIAB0RX_VECTOR __interrupt void USCIA0RX_ISR (void) { int a = UCA0RXBUF; rxBufferCnt++; if (rxBufferCnt == 2) { // то попадает, то нет. чаще всего нет. rxBufferCnt = 0; } }