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.

[参考译文] CCS/MSP430F249:更改 UART 引脚

Guru**** 2539500 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/679648/ccs-msp430f249-uart-pin-change

器件型号:MSP430F249

工具/软件:Code Composer Studio

大家好!我有这个 UART 代码在引脚3.6,7上工作我想把它更改为引脚3.4,5;我该怎么做??

我尝试将选择 buf 更改为 P3SEL = 0x030;  但它不起作用!

代码如下:

#include

int main (空)

WDTCTL = WDTPW + WDTHOLD;//停止 WDT
P1DIR = 0xFF;//所有 P1.x 输出
P1OUT = 0;//所有 P1.x 复位
P2DIR = 0xFF;//所有 P2.x 输出
P2OUT = 0;//所有 P2.x 复位
P3SEL = 0x0C0;// P3.6、7 = USCI_A1 TXD/RXD
P3DIR = 0xFF;//所有 P3.x 输出
P3OUT = 0;//所有 P3.x 复位
P4DIR = 0xFF;//所有 P4.x 输出
P4OUT = 0;//所有 P4.x 复位
P5DIR = 0xFF;//所有 P5.x 输出
P5OUT = 0;//所有 P5.x 复位
P6DIR = 0xFF;//所有 P6.x 输出
P6OUT = 0;//所有 P6.x 复位

UCA1CTL1 |= UCSSEL_1;// CLK = ACLK
UCA1BR0 = 0x03;// 32kHz/9600 = 3.41
UCA1BR1 = 0x00;//
UCA1MCTL = UCBRS1 + UCBRS0;//调制 UCBRSx = 3.
UCA1CTL1 &=~UCSWRST;//**初始化 USCI 状态机**
UC1IE |= UCA1RXIE;//启用 USCI_A1 RX 中断

_bis_SR_register (LPM3_bits + GIE);//输入 LPM3、中断被启用

//回显 RXed 字符,确认 TX 缓冲区已准备就绪
#if defined (__TI_Compiler_version__)|| Defined (__IAR_systems_ICC__)
#pragma vector=USCIAB1RX_vector
_interrupt void USCI1RX_ISR (void)
#Elif defined (_GNU_)
void __attribute__((中断(USCIAB1RX_Vector)) USCI1RX_ISR (void)
其他
错误编译器不受支持!
#endif

while (!(UC1IFG&UCA1TXIFG));// USCI_A1 TX 缓冲区就绪?
UCA1TXBUF = UCA1RXBUF;// TX -> RXED 字符

谢谢!

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

    您好!

    根据 数据表、 P3.4/5使用 UCA0而不是 UCA1、因此您需要相应地更改寄存器名称。 正如您已经写的那样、P3SEL 必须被设定为0x30。

    此致、

    Andre

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家好、我不能更改为 UCA0、这样代码就不起作用了、我还能做什么吗?!
    谢谢你
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    F2系列不允许您移动针脚分配。 您之前的线程表明您的电路板上的 UCA1 (P3.6/7)物理连接到 USB/UART 线缆。 如果您已将这些连接物理移动到 P3.4/5、那么您现在将连接到 UCA0引脚。 [另请参阅 SLAS547I 表23。]

    UCA0和 UCA1提供相同的功能、因此除了引脚分配之外、没有真正的理由选择一个而不是另一个。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的、我得到了它、那么我是否有可能在 UCA0中接收并在 UCA1中发送? 还是相反?
    是不是可能的
    谢谢你
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您当然可以使用一个 UCAx 作为仅 Rx 和另一个仅 Tx、但您仍然受困于引脚分配、因此我不确定通过执行该操作将获得什么好处。

    更一般而言、我不清楚您要实现的整体目标。 也许(?) 还有另一种执行您想要执行的操作的方法。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Rena、

    您有一段时间没有回复。 你还有疑问吗?

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