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.

[参考译文] MSP-EXP430G2ET:与具有 Visual Basic 的反向通道 UART 连接时出现问题

Guru**** 2613765 points
Other Parts Discussed in Thread: MSP430G2553

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1001864/msp-exp430g2et-problems-interfacing-with-the-back-channel-uart-with-visual-basic

器件型号:MSP-EXP430G2ET
主题中讨论的其他器件:MSP430G2553

大家好、

感谢您查看我的问题。 我有一个 launchpad 套件、并希望使用视觉基本程序与其交互。 我制作了一个 VB 程序、显示系统上的当前端口、并显示端口规格。 如下所示:


我将 MSP430G2553连接到 launchpad 并运行以下代码:

/----------------- 代码-------------------------------------------------------
int main (空)

//------ 关闭 WDT -------------------------------------------------------
WDTCTL = WDTPW + WDTHOLD;//停止看门狗

//------ 检查时钟校准并将时钟设置为1MHz ---
if (CALBC1_1MHz=0xFF)//检查校准常数是否被擦除

while (1);//不要加载程序

DCOCTL = 0;//选择最低 DCO 设置
BCSCTL1 = CALBC1_1MHz;//将 DCO 设置为1MHz
DCOCTL = CALDCO_1MHz;

//---- 引脚设置-------------------------------------------------------
P1SEL = BIT1 + BIT2;//在 P1.1、P1.2上选择 UART RX/TX 功能
P1SEL2 = BIT1 + BIT2;

//P1OUT&=~(BIT0|BIT3|BIT4|BIT5|BIT6|BIT7);//将输出变为低电平。
P2OUT&=~0xFF;//将输出变为低电平
P3OUT&=~0xFF;//将输出变为低电平

// P1DIR|= BIT0|BIT3|BIT4|BIT5|BIT6|BIT1;//将端口1的其余部分转换为输出。
P2DIR|=0xFF;//将所有端口2转换为输出
P3DIR|=0xFF;//将所有端口3转换为输出

UCA0CTL1 |= UCSSEL_2+ UCSWRST;// UART 时钟-> SMCLK,并置于复位状态
UCA0BR0 = 104;//波特率设置为1MHz 9600
UCA0BR1 = 0;//波特率设置为1MHz 9600
UCA0MCTL = UCBRS_1;//针对1MHz 9600的调制设置


UCA0STAT |= UCLISTEN;
UCA0CTL1 &=~UCSWRST;//初始化 UART 模块
IE2 |= UCA0RXIE;//启用 RX 中断

P2OUT|= 0xFF;
while (1){
_bis_SR_register (LPM0_bits + GIE);//输入 LPM0、启用中断


#pragma vector=USCIAB0RX_vector // UART RX 中断向量
_interrupt void USCI0RX_ISR (void)

while (!(IFG2&UCA0TXIFG));//检查 TX 是否正在进行
//UCA0TXBUF = UCA0RXBUF + 1;// TX ->接收到的字符+ 1
unsigned char temp;
IFG2 &=~UCA0RXIFG;//清除 RX 标志
字符 x;
温度= UCA0RXBUF;
x =(char) temp;

if (x = 0x41){
P2OUT|=0xFF;

if (x = 0x42){
P2OUT&=~0xFF;

/----------------- 结束代码------------------------------------------------------- >


可以看到、UC 正在等待"A"或"B"字符、并将输出翻转为 ON 表示 A、或 OFF 表示"B"。 我遇到的问题是 MSP430从未看到 Visual Basic 发送的信号。

有人可以帮帮我吗?

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

    UCA0STAT |= UCLISTEN;

    这会将 UART 置于环回模式、因此不会侦听 Rx 线路[参考 UG (SLAU144J)图15-1]。 我建议您删除此行。

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

    这无法解决问题。 我将更仔细地查看 SLAU144。 感谢您的帮助。

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

    如何判断字节未到达 MSP430? ISR 中的断点? 或没有可见结果?

    要在 G2ET Launchpad 上使用硬件 UART、需要将 J101上的 RXD/TXD 跳线("桥接接头")与其他跳线旋转90度[请参阅附近丝印上的"HW-UART"]。 我忘记了它们在出厂时的安装方式。

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

    我的天! 谢谢您1这是 J101桥-它没有旋转。 谢谢谢谢谢谢谢谢!谢谢!