Jump to content

    
Sign in to follow this  
man1

как вывести в Си вот такую строку

Recommended Posts

Добрый день подскажите плз как можно в СИ , а конкретно IAR ARM 6.30 вывести в UART вот такую строку?

{"Name": "001","ChValues": [128,64,32,255],"OnOff": 1}

 

Можно использовать sprintf:

char buffer[BUF_SIZE];
sprintf(buffer, "строка форматирования", "параметры");
SendBufferToUART(buffer);

 

Фунцию SendBufferToUART написать самому или скопипастить, если есть подходящая.

Share this post


Link to post
Share on other sites
А в чём проблема?

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

 

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

 

Да , только у меня значения параметров переменные

т.е имя ChValues , а параметры 128,64,32,255 в процессе работы программы считаются

 

 

 

 

Edited by man1

Share this post


Link to post
Share on other sites
Да , только у меня значения параметров переменные

т.е имя ChValues , а параметры 128,64,32,255 в процессе работы программы считаются

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

 

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

полученную строку выдать в UART.

Share this post


Link to post
Share on other sites

Делал недавно подобное, правда 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;

Edited by oll

Share this post


Link to post
Share on other sites

На ARM можно себе позволить пользоваться и просто printf().

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this