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.

[参考译文] MSP430F5529:通过 UART 发送浮点数据

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/986640/msp430f5529-send-floating-over-uart

器件型号:MSP430F5529

你(们)好

(我是初学者编程人员!!!)

我有一个介于0和3.30V 之间的电位器

对于浮点、我可以通过 Teraterm 终端显示我的值

adc12mem = ADC12MEM0;

adc12memval =(adc12mem*3.3)/4095;
sprintf (buffer、"Volt:%.2f V \n\r"、adc12memval);

但接下来是我读取的内容。  浮点并不是编程的最佳方式

如果我正在尝试以下代码:

adc12mem =(((uint32_t) adc12mem * 330)/ 4095);
adc12mem_lo =(adc12mem % 100)& 0x0FF;
sprintf (buffer、"Volt:%d.%2dV\n"adc12mem/100、adc12mem_lo);

程序运行良好、但如果点和最后一个数字之间有一个0、则不会运行。   

例如、3.30V、我看到端子中有3.30V 电压

3.09我见3. 端子电压为9V。  点后的0始终缺失。

此致

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

    > sprintf (buffer、"Volt:%d.%2dV\n"adc12mem/100、adc12mem_lo);

    使用%02d 而不是%2D、如下所示:

    > sprintf (buffer、"Volt:%d.%02dV\n"adc12mem/100、adc12mem_lo);