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.

[参考译文] MSP430G2452:IAR/UART和引脚1.2 问题,并使用1.1 将字符发送到计算机

Guru**** 2611705 points
Other Parts Discussed in Thread: MSP430G2452

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/661618/msp430g2452-iar-pin1-1-and-pin-1-2-problems-and-send-char-to-computer-with-uart

部件号:MSP430G2452

你(们)好 我正在使用IAR在Launchpad上对MSP430G2452进行编程。 我有一些严重的问题。

1 1.1 ,在launchpad上标记为UART引脚的1.2 ,但用户指南和数据表指出1.1 和WFP 1.2 上没有UART功能。 那么,UART功能在1.1 的1.2 上是否可用?

2,因为WFP 1.1 和WFP 1.2 与F1612相连。 如何使用UART将CHAR数据发送到计算机?

我知道UART,并对F149进行编程,以便使用UART将CHAR数据发送到计算机。 G2452的数据表和用户指南让我很困惑。

代码示例也可以帮助我。

谢谢

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

    您好,Bin,

    尝试将RX和TX跳线设置为水平(=),而不是垂直(||)。

    然后,此代码应作为回应:

    #include <MSP430-h>
    
    int main(void)
    {
    WDTCTL = WDTPW + WDTHOLD; //如果
    					校准常量被擦除
    ,则停止WDT (CALC1_1MHz=0xFF)// 											
    同时(1); //不加载,捕获CPU!	
    !}
    DCOCTL = 0; //选择最低DCOx和MODx设置
    BCSCTL1 = CALC1_1MHz; // SET DCO
    DCOCTL = CALDCO_1MHz;
    P1SEL = BIT1 + BIT2; // WFP 1.1 = RXD,WFP 1.2 = TXD
    P1SEL2 = BIT1 + BIT2; // WFP 1.1 = RXD,WFP 1.2 = TXD
    UCA0CTL1 |= UCSSEL_2; // SMCLK
    UCA0BR0 = 104; // 1MHz 9600
    UCA0BR1 = 0; // 1MHz 9600
    UCA0MCTL = UCBRS0; //调制UCBRSx = 1
    UCA0CTL1 &=~UCSWRST; //**初始化USCI状态机**
    IE2 |= UCA0RXIE; //启用USI_A0 RX中断
    
    __bis_sr_register (LPM0_bits + GIE); //输入LPM0,启用中断
    }
    
    //回显RXed字符,确认TX缓冲区已就绪首先
    #if defined(__TI_Compiler_version__)|| defined(__IAR_systems_icc__)
    #pragma vector=USCIAB0RX_vector
    __interrupt void USCI0RX_NUT (void)#Elif ()#IALF(___IAR_GE_ISR_NOTE_)
    
    
    
    
    #endif
    {
    while (!(IFG2&UCA0TXIFG)); // USI_A0 TX缓冲器就绪?
    UCA0TXBUF = UCA0RXBUF; // tx -> RXed Character
    }
    

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

    UCA0BR0 = 104; // 1MHz 9600
    UCA0BR1 = 0; // 1MHz 9600

    设置上应该有什么编号?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我将SMCLK设置为1MHz,所以不用担心。 但IAR g2452.h文件中未定义以下寄存器。 您是否有更新的文件?

    错误[Pe020]:未定义标识符"IFG2"
    错误[Pe020]:未定义标识符"UCA0TXIFG"
    错误[Pe020]:未定义标识符"UCA0TXBUF"
    错误[Pe020]:未定义标识符"UCA0RXBUF"
    错误[Pe020]:未定义标识符"IFG2"
    错误[Pe020]:未定义标识符"UCA0TXIFG"
    错误[Pe020]:未定义标识符"UCA0TXBUF"
    错误[Pe020]:未定义标识符"UCA0CTL1"
    错误[Pe020]:未定义标识符"UCSSEL_2"
    错误[Pe020]:未定义标识符"UCA0BR0"
    错误[Pe020]:未定义标识符"UCA0BR1"
    错误[Pe020]:未定义标识符"UCA0MCTL"
    错误[Pe020]:未定义标识符"UCBRS0"
    错误[Pe020]:未定义标识符"UCSWRST"
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    2452变体内部没有UART,这就是编译器给出这些错误的原因。

    选项包括:
    -了解如何使用a_timer对2452位bang UART进行编码(检查各种源)
    如果您可以用2553处理器替换2452,则可以在2553芯片上使用UART硬件

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

    我现在正在购买G2553并阅读用户指南。

    我应该阅读哪一部分?

    USART外设接口,UART模式

    通用串行通信接口,UART模式  

    上述主题之间有何区别?

    谢谢

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

    箱,

    USSCI和USART是具有不同功能的不同通信外设。 还有USI和eUSCI。  

    该部分有一个USCI,因此请阅读 通用串行通信接口。 此信息可在数据表或部件页面上的功能块图中找到。  

    Otto,很好的收获 读取错误的零件号... :-)  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Bin,Cameron -很高兴能提供帮助! 我想知道,我怎么能从这一点中得到分数?

    bin,首先尝试使用USCI和2553示例代码的2553。 (搜索)
    第二种方法(bi-bang)更复杂。 我要推荐John Davies所著的《MSP430微处理器基础》一书。 PDF通常可在网上免费找到。

    遗憾的是,由于其他工作,我无法进一步帮助您;祝您好运!

    Salut,Otto
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Otto,
    每当您发布帖子或将帖子标记为答案时,您的积分将自动累积。 有关详细信息,请单击您的排名,它将显示细分。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家好,我试过G2553。 但这一方案不起作用。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您是否已将RX和TX跳线更改为显示在屏幕上的HW UART配置?  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您将需要使用SW UART配置进行编程,然后将跳线更改为HW UART (如上所示)以进行UART回波。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我改变了它现在正在工作。 谢谢