Member 13892404 Ответов: 1

Как передать переменные с плавающей запятой в строку


Я пытаюсь печатать строки на жидкокристаллическом дисплее с помощью языка Си. Я хочу напечатать напряжение и ток моей системы на жидкокристаллическом дисплее. как включить значения с плавающей запятой при печати в строке? Я использую SPI для связи с жидкокристаллическим дисплеем.

То, что я хочу напечатать, это,
"28,0 В ПОСТОЯННОГО ТОКА 18,0 А"

Где 28.0 и 18.0-выходные переменные с плавающей запятой, Vout_Read и Iout_Read. Я не могу использовать оператор printf и %f, пытаясь выполнить передачу SPI. Любое предложение или помощь очень ценятся

Что я уже пробовал:

Я пытался печатать сообщения как есть, не имея универсальной переменной. Я постоянно называю разные конкретные строки, каждая из которых имеет разные номинальные значения напряжения и тока. Но я хочу обобщить это и повысить эффективность моего кода.

1 Ответов

Рейтинг:
8

Peter_in_2780

sprintf быть вашим другом. Преобразуйте ваши поплавки и все остальное, чтобы построить форматированную строку, которую вы можете вывести через SPI.


Member 13892404

Спасибо за ваше время и помощь Питеру. Но у меня есть еще один вопрос. Синтаксис сообщения передачи SPI состоит из двух аргументов. один из них-это тип значения , записываемого на жидкокристаллический дисплей, то есть либо данные, либо команда. и второй аргумент-это сама ценность. обычно это струна.

Я хочу, чтобы эта строка содержала переменную с плавающей запятой как ее часть. Как использование sprintf позволяет это сделать??

Если бы я использовал sprintf для печати напряжения, я бы сделал что-то вроде этого,

Строка символов[40];
sprintf(строка, "Voltage is = %f", Vout_Read);
ставит(str);

Но я использую одну передаточную функцию SPI, чтобы записать что-нибудь на ЖК-дисплей.
это прототип есть
пустота Spi_Transfer_to_LCD ( типа value_type типа uint16 значение типа uint16 )

16-битное значение обычно передается в виде строки. Теперь мне нужна эта строка для печати с универсальной переменной Vout_Read и Iout_Read в ней.