man1 0 2 июля, 2012 Опубликовано 2 июля, 2012 · Жалоба Добрый день подскажите плз как можно в СИ , а конкретно IAR ARM 6.30 вывести в UART вот такую строку? {"Name": "001","ChValues": [128,64,32,255],"OnOff": 1} Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SSerge 4 2 июля, 2012 Опубликовано 2 июля, 2012 · Жалоба А в чём проблема? Если в представлении символа " внутри строки, то так: \" const char string[] = "\"Name\": \"001\",\"ChValues\": [128,64,32,255],\"OnOff\": 1"; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Артём__ 0 2 июля, 2012 Опубликовано 2 июля, 2012 · Жалоба Добрый день подскажите плз как можно в СИ , а конкретно IAR ARM 6.30 вывести в UART вот такую строку? {"Name": "001","ChValues": [128,64,32,255],"OnOff": 1} Можно использовать sprintf: char buffer[BUF_SIZE]; sprintf(buffer, "строка форматирования", "параметры"); SendBufferToUART(buffer); Фунцию SendBufferToUART написать самому или скопипастить, если есть подходящая. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
man1 0 2 июля, 2012 Опубликовано 2 июля, 2012 (изменено) · Жалоба А в чём проблема? Если в представлении символа " внутри строки, то так: \" const char string[] = "\"Name\": \"001\",\"ChValues\": [128,64,32,255],\"OnOff\": 1"; Да , только у меня значения параметров переменные т.е имя ChValues , а параметры 128,64,32,255 в процессе работы программы считаются Изменено 2 июля, 2012 пользователем man1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Артём__ 0 2 июля, 2012 Опубликовано 2 июля, 2012 · Жалоба Да , только у меня значения параметров переменные т.е имя ChValues , а параметры 128,64,32,255 в процессе работы программы считаются Тогда нет смысла строку формировать. Разве что строку форматирования как константу. sprintf(buffer, "Kakoi-to text %d, %d, %d, %d", value1, value2, value3, value4); полученную строку выдать в UART. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
skripach 5 2 июля, 2012 Опубликовано 2 июля, 2012 · Жалоба Любой учебник по си поможет одолеть проблему. Гуглить - "модификаторы printf" Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
oll 0 3 июля, 2012 Опубликовано 3 июля, 2012 (изменено) · Жалоба Делал недавно подобное, правда IAR AVR. Использовал библиотеку string.h. Параметры преобразовать в ASCII и strcat в буфер, строки - strcpy в буфер #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; Изменено 3 июля, 2012 пользователем oll Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SSerge 4 3 июля, 2012 Опубликовано 3 июля, 2012 · Жалоба На ARM можно себе позволить пользоваться и просто printf(). Нужно только прочитать документацию (EWARM_DevelopmentGuide.ENU.pdf) и реализовать функцию __write(). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться