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/MSP430FR5969:UART 传输中的问题

Guru**** 2553930 points
Other Parts Discussed in Thread: MSP430FR5969

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/714743/ccs-msp430fr5969-problems-in-uart-transmission

器件型号:MSP430FR5969

工具/软件:Code Composer Studio

大家好、

在我的应用中、我需要通过 UART 从 MSP430FR5969向 PC 发送一些数据。 为此、我编写了以下代码:

#include 

float TOF_buffer[]={1.1、1.2、1.3、1.4、1.5、 1.6、1.7、1.8、1.9、1.10};
float *p=*(&TOF_buffer);

void initial_Serial();
void serial_send (char);

void setup(){
PM5CTL0 &=~LOCKLPM5;

P1DIR &=~0x02;
P1REN |= 0x02;
P1IES |= 0x02;
P1IFG &=~0x02;
P1IE |= 0x02;

// P3.4中的输出 SMCLK
P3DIR |= 0x10;
P3SEL1 |= 0x10;

Initialize_Serial();
}

void loop(){
nop;
}

#pragma vector=Port1_vector
__interrupt void Port1_ISR_Hook (void){ 
char TOF_DATA ='1'; serial_send (TOF_DATA); P1IFG &=~0x02; P1IE |= 0x02; } void serial_send (char TX_DATA){ while (!(UCA0IFG 和 UCTXIFG)); P4OUT ^= 0x40; UCA0TXBUF = TX_DATA; while (!(UCA0IFG & UCTXCPTIFG)); UCA0IFG &=~UCTXCPTIFG; } void initialize_Serial(){ P2SEL1 |= 0b00000011; P2SEL0 &=~0b00000011; UCA0CTL1 |= UCSSEL_2 | UCSWRST; UCA0BR0 = 0x08; UCA0BR1 = 0x00; UCA0MCTLW = 0x1111011100000001; UCA0CTL1 &=~UCSWRST; }

想法是在不中断的情况下使用 UART。 相反、只要按下按钮 P1.1、我就希望通过 UART 发送一条消息、该消息将写入串行监视器。  16MHz SMCLK 的波特率为115200。  

但是、当尝试发送字符"1"时、我只能在串行监视器中读取"(设置为正确的波特率)。

 之后、我不想发送单个字符、而是希望通过该接口发送浮点、我需要帮助。

提前感谢、  

Joaquim

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

    您能否使用我们的演示代码与 PC 通信?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、

    我可以使用函数"Serial.println (x)"与 PC 通信。 但是、在我使用它的上下文中、我必须在没有中断的情况下使用 UART
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    此外、借助该函数、我甚至可以将浮点值直接发送到 PC、并在串行监视器上正确读取它们
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好、Joaquim
    是否确定使用代码 UCA0MCTLW = 0x1111011100000001;?
    对于发送的 UART、您不能使用中断、但对于 RX、我认为您必须使用中断来知道有一个字节。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我不需要接收任何数据、

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

    您可以参考代码示例 msp430fr59xx_euscia0_UART_03.c 和 msp430fr59xx_euscia0_UART_04.c、这两个代码仅包含 RX 中断、您可以从该示例中删除。