реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> как вывести в Си вот такую строку
man1
сообщение Jul 2 2012, 19:56
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 69
Регистрация: 11-01-08
Пользователь №: 34 008



Добрый день подскажите плз как можно в СИ , а конкретно IAR ARM 6.30 вывести в UART вот такую строку?
{"Name": "001","ChValues": [128,64,32,255],"OnOff": 1}
Go to the top of the page
 
+Quote Post
SSerge
сообщение Jul 2 2012, 20:09
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528



А в чём проблема?
Если в представлении символа " внутри строки, то так: \"

const char string[] = "\"Name\": \"001\",\"ChValues\": [128,64,32,255],\"OnOff\": 1";


--------------------
Russia est omnis divisa in partes octo.
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Jul 2 2012, 20:11
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(man1 @ Jul 2 2012, 22:56) *
Добрый день подскажите плз как можно в СИ , а конкретно IAR ARM 6.30 вывести в UART вот такую строку?
{"Name": "001","ChValues": [128,64,32,255],"OnOff": 1}


Можно использовать sprintf:
Код
char buffer[BUF_SIZE];
sprintf(buffer, "строка форматирования", "параметры");
SendBufferToUART(buffer);


Фунцию SendBufferToUART написать самому или скопипастить, если есть подходящая.
Go to the top of the page
 
+Quote Post
man1
сообщение Jul 2 2012, 20:21
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 69
Регистрация: 11-01-08
Пользователь №: 34 008



Цитата(SSerge @ Jul 3 2012, 00:09) *
А в чём проблема?
Если в представлении символа " внутри строки, то так: \"

const char string[] = "\"Name\": \"001\",\"ChValues\": [128,64,32,255],\"OnOff\": 1";


Да , только у меня значения параметров переменные
т.е имя ChValues , а параметры 128,64,32,255 в процессе работы программы считаются





Сообщение отредактировал man1 - Jul 2 2012, 20:21
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Jul 2 2012, 20:32
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(man1 @ Jul 2 2012, 23:21) *
Да , только у меня значения параметров переменные
т.е имя ChValues , а параметры 128,64,32,255 в процессе работы программы считаются

Тогда нет смысла строку формировать. Разве что строку форматирования как константу.

Код
sprintf(buffer, "Kakoi-to text %d, %d, %d, %d", value1, value2, value3, value4);

полученную строку выдать в UART.
Go to the top of the page
 
+Quote Post
skripach
сообщение Jul 2 2012, 20:33
Сообщение #6


■ ■ ■ ■
*****

Группа: Свой
Сообщений: 1 100
Регистрация: 9-08-06
Пользователь №: 19 443



Любой учебник по си поможет одолеть проблему.
Гуглить - "модификаторы printf"


--------------------
Делай что должен и будь что будет.
Go to the top of the page
 
+Quote Post
oll
сообщение Jul 3 2012, 02:36
Сообщение #7


Частый гость
**

Группа: Участник
Сообщений: 163
Регистрация: 10-10-05
Пользователь №: 9 463



Делал недавно подобное, правда IAR AVR. Использовал библиотеку string.h.
Параметры преобразовать в ASCII и strcat в буфер, строки - strcpy в буфер
CODE

#define MAX_BUF 256
unsigned char buf[MAX_BUF];
char temp[4];

bin2ascii(N1);
strcat_P((char *)buf,(char __flash *)(" N1:"));
strcat((char *)buf,temp);

bin2ascii(N2);
strcat_P((char *)buf,(char __flash *)(" N2:"));
strcat((char *)buf,temp);

if (send(buf,strlen((char *)buf)) <= 0) break;


Сообщение отредактировал oll - Jul 3 2012, 02:38
Go to the top of the page
 
+Quote Post
SSerge
сообщение Jul 3 2012, 07:07
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528



На ARM можно себе позволить пользоваться и просто printf().
Нужно только прочитать документацию (EWARM_DevelopmentGuide.ENU.pdf) и реализовать функцию __write().


--------------------
Russia est omnis divisa in partes octo.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 01:07
Рейтинг@Mail.ru


Страница сгенерированна за 0.0144 секунд с 7
ELECTRONIX ©2004-2016