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.

[参考译文] MSP430F2618:无法获取UCA0TXD上的异步串行数据

Guru**** 2534260 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/578589/msp430f2618-could-not-get-out-asynchron-serial-data-on-uca0txd

部件号:MSP430F2618

您好,希望有人能帮助我。

我尝试将代码从 MSP430F169 获取到 MSP430F2618

此微控制器的UART逻辑已更改,我用以下代码尝试了它。

我在2618中没有找到TX-Enable,就像在ME2寄存器169中一样。

我的问题是  没有数据来自WFP 3.4 (UCA0TXD)

我还尝试了将ACLK作为源代码,但它不起作用。

曼弗雷德,最佳

#include <io430x26x.h>
#include "in430.h"
#define WDDG() WDTCTL=WDTPW+WDTSSEL+WDTCNTCL;WDTCTL=WDTPW+WDTSSEL

INT TOTX;

主真空()

unsigned char sec_cnt;

BCSCTL1 |= DIVA_3;                 // ACLK = 8MHz / 8 = 2MHz
/*停止监视计时器。 */
WDTCTL = WDTPW + WDTHOLD;
BCSCTL1 |= XTS;                   //高频模式
BCSCTL3 |= LFXT1S1;              //频率从3到16 MHz


 IFG1 &=~OFIFG;                          // Oszillator-Fehler-bit löschen
 对于(sec_cnt=0xff; sec_cnt ;--sec_cnt);
} While ( IFG1 & OFIFG );                     //当Solange der Oszillator nicht angeschwungen正在进行中时


BCSCTL2 ||(SELM0+SELM1+SELM1+STES);// 11:MCLK = LFXT1CLK,SMCLK = CLK
TBCTL = tassel_1 + MC_2;          // SRC=ACLK,连续计数0-FFFF
TBCCTL0 = CCIE;                    //中断启用
TBCCR0 = 2000;                    // 2MHz / 2000 = 1ms

UCA0CTL1 = UCSWRST;
UCA0CTL0 = 0;
UCA0CTL1 || UCSSEL1;         // SSEL1 = SMCLK
// UCA0CTL1 |= UCRXEIE;
UCA0BR1 = 6;
UCA0BR0 = 0x82;                //1666
UCA0MCTL = 0x0c;              // UCBRS=6,UCBRF=0,UCOS16=0
P3SEL |= 0x30;
UCA1CTL1 &=(~UCSWRST);
_EINT();
同时(1)

  WDG ();
  IF (!toTX)
  {
   UCA0TXBUF = 0x55;
   TTX = 500;
  }

}
}

#pragma vector=TIMERB0_vector
__interrupt void interrupT_TIMERB0_vector (void)

 TBCCR0 +=2000;            //将偏移量添加到TCCR0 x 0.5us
 if(tox)--tox;
}

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我自己发现了问题。
    我以为如果XT2被关闭,SMCLK会被XT1强制使用,但似乎SMCLK只能与DCO或XT2一起使用。
    现在可以使用用于USART的ACLK。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您更新您的问题Manfred。 SMCLK是软件可选的LFXT1CLK,但仅当XT2不存在时才可选。  我还注意到,您正在清除UCA1CTL1的UCSWRST位,而不是UCA0CTL1。

    此致,
    Ryan

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

    感谢Ryan的提示!

    此致,

    Manfred