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/MSP430F5529:MSP430F5529

Guru**** 2540460 points
Other Parts Discussed in Thread: MSP430F5529

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/577806/ccs-msp430f5529-msp430f5529

部件号:MSP430F5529

工具/软件:Code Composer Studio

您好,

     我正在使用MSP430F5529的UART,并且能够在终端上传输一个字符。 现在我正在从传感器读取温度数据,该值存储在tempCelcius中,如下面的代码所示。我得到的值是31.25 ,我希望使用UART在终端上显示此值,那么我应该如何继续 使用代码来显示温度 数据。  

void ADXL362_ReadTemperature (void)
		{


			P3OUT &=~BIT2;
			SPI_RW(0x0B);
			SPI_RW(0x14);
tempdate[0]=SPI_RW(0x00); ///temp数据
		tempddata[1]= SPI_RW(0x00);//temp data

[1]= tempddata[1]<8;
adddata = tempddata[1]+tempddata[0];
tempdesisel= adddata * 0.065 ;
} 

请帮我解决这个问题  

谢谢!

Pratiksha bhuta

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

    您好,Pratiksha,

    首先,我想向您介绍 MSP430 MCU上常见eUSCI和USCI串行通信问题的解决方案 应用报告。 请参阅讨论使用UART通信与PC终端的UART部分。  

    基础知识是,您需要决定哪一端将温度数据转换为要在终端上显示的正确ASCII字符。 这可以在MSP430上使用sprintf完成,也可以使用终端来选择将数据解释为十六进制,二进制,ASCII, 等等。我会提醒您,在嵌入式应用程序中使用sprintf等函数是不常见的,有时会被拒绝,因为它们会大量增加代码,并且通常执行速度较慢。  

    此致,  
    Caleb Overbay

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

    您好,Caleb Overbay,

                       我不能理解您在说什么,我的数据存储在摄氏温度下,因此它充当指向数据的指针,因此代码应该如何显示数据终端? 我用于在终端上显示数据的代码如下所示

    void display (unsigned char A)
    {//Poll for transmit interrupt flag
    
    while (!(UCA1IFG & UCTXIFG));
    
    UCA1TXBUF = A;
    
    } 

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

    您好,Pratiksha,

    如果没有看到您的其余代码,我无法确定您是否正确地将数据发送到终端。 这将包括MSP430上正确的USCI模块设置。 我建议查看 MSP430Ware中的UART示例。 它们显示了如何正确设置模块以适应不同的波特率和时钟输入。

    此外,即使您的数据存储在tempCelcius中,也需要将其转换为正确的ASCII格式,然后才能在终端上查看。 这可以通过MSP430或终端程序来完成。 例如,假设tempCelcius的值为0x21,表示摄氏33度。 当0x21发送到终端时,它将显示为"!" 因为这是0x21的ASCII表示。 要将该信息正确显示为33度,您需要将0x21转换为正确的ASCII十六进制值,然后将其发送到终端。 可以 在此处找到ASCII表

    此致,  

    Caleb Overbay

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

    您是否仍需要有关此问题的帮助,或者您是否有想要分享的解决方案?

    此致,
    Caleb Overbay