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.
工具与软件:
如何在串行端口中获得十进制值?
我在 tms4357lc4357 Herculis 开发套件中加入了示例代码。
我将在串行终端中获取十六进制值。
提前感谢。
尊敬的 Ashutosh:
如何在串行端口中获得十进制值?
如果要直接在串行端口上显示十进制值、则需要将相应的十进制值转换为 ASCII 字符串。 您必须将该字符串发送到串行端口、然后可以在串行终端看到 ASCII 格式的值。
为此、您可以使用 stdio.h 库中的"sprintf"函数。
例如、您可以验证以下代码:
在上面的代码"size"是一个十进制值、因此他们 将这个十进制值传递给 sprintf API、sprintf 的作用是将这个十进制值转换为 ASCII 字符串、并将其存储到输入缓冲区中、在本例中为"Numberstr"。
之后、您可以按字节向串行端口发送缓冲区数据。
要了解有关 sprintf 的更多信息、您也可以参阅以下链接:
——
谢谢、此致、
Jagadish。
感谢您的答复,我想看到我的 ADC 电压(与电位计连接1至2.5伏)值在十进制和浮点格式在串口,但默认情况下它是 hexa formet ,感谢之前的答复。
尊敬的 Ashutosh:
使用 UART 或 SCI、您无法直接发送浮点值。
UART 或 SCI 只发送字节的数据实习生、每个字节值都将位于0x00到0xFF 之间(即0到255)。 除此之外、我们不能通过 UART 或 SCI 发送任何内容。
示例:
如果要向 UART 发送1.5值、则不能直接发送。
要发送该1.5浮点值、您需要发送每个字符的 ASCII 值。
请参阅下面的 ASCII 表
ASCII 表- ASCII 代码、字符和符号表(ascii-code.com)
因此、使用上表、下面的是1.5值的十进制值和十六进制值
"1" => 49 (0x31)
'.' => 46 (0x2E)
"5" => 53 (0x35)
因此、要将此1.5v 值发送到串行端口、您需要发送0x31、0x2E 和0x35字节。 在接收结束时、如果您以 ASCII 模式查看数据、那么您可以在显示屏中看到1.5。
这就是我说使用"sprintf"将浮点值转换为字符串的原因。
——
谢谢、此致、
Jagadish。
爱你很多老板感谢你这么多,现在我能够看到 ADC 值在浮点,但一些校准是需要获得准确的值 .