This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] MSP430F2232:CP2102 USB 转 UART

Guru**** 2361430 points
Other Parts Discussed in Thread: MSP430F2232
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1529155/msp430f2232-cp2102-usb-to-uart

器件型号:MSP430F2232

工具/软件:

您好:

我正在尝试使用 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 执行某些操作
}
}

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Sytze:
    您能分享一下 UART 的波形吗?

    此致、

    Diego Abad

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我希望共享波形并找到了一些内容。 我使用光耦合器作为保护、但却买了一个使信号反转的光耦合器、这很愚蠢。  

    感谢您的帮助、但我可以从现在开始获得更多。