工具/软件:
您好:
我正在尝试使用 USB 将数据从计算机发送到 MSP430F2232。 因此、我使用 CP2102 从 USB 获取 UART。
我正尝试从该 UART 接收数据。 我使用程序 PuTTY 通过 USB 发送数据、然后在微控制器上获取数据。
是否有用于接收数据的代码? 我目前正在尝试使用下一个代码(但得到了错误 UCFE(USCI 帧错误标志)):
#include
#define BUFFER_SIZE 64
Volatile unsigned char rxBuffer[buffer_size];
volatile unsigned int rxIndex = 0;
void UART_Init (void){
WDTCTL = WDTPW | WDTHOLD;//停止看门狗计时器
//将 DCO 配置为~1MHz
BCSCTL1 = CALBC1_1MHz;
DCOCTL = CALDCO_1MHz;
//配置 UART 引脚
P3SEL |= BIT4 + BIT5;// P3.4 = RXD、P3.5 = TXD
P3DIR |= BIT5;// TXD 作为输出
//为 UART 配置 USCI_A0
UCA0CTL1 |= UCSWRST;//保持 USCI 处于复位状态
UCA0CTL1 |= UCSSEL_2;// SMCLK
UCA0BR0 = 104;// 1MHz / 9600 波特
UCA0BR1 = 0;
UCA0MCTL = UCBRS_1;//调制
UCA0CTL1 &=~UCSWRST;//初始化 USCI
IE2 |= UCA0RXIE;//启用 RX 中断
}
#pragma vector=USCIAB0RX_vector
__ interrupt void USCI0RX_ISR (void){
接收到 unsigned char = UCA0RXBUF;
if (rxIndex < buffer_size){
rxBuffer[rxIndex++]= received;
}
}
int main (void){
UART_Init();
_enable_interrupt ();//启用全局中断
while (1){
// MCU 处于低功耗模式、通过 UART 中断唤醒
__bis_SR_register (LPM0_bits + GIE);
//在 debug / watch 中对 rxBuffer 执行某些操作
}
}