kil00 0 7 мая, 2012 Опубликовано 7 мая, 2012 · Жалоба Здравствуйте! Использую Keil и stm32f103. Как преобразовать переменную в строку? В хидерах нет функции itoa(). Хотел, как альтернативу для передачи по USART использовать функцию printf() - контроллер зависает напрочь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Вячик13 0 7 мая, 2012 Опубликовано 7 мая, 2012 · Жалоба Здравствуйте! Использую Keil и stm32f103. Как преобразовать переменную в строку? В хидерах нет функции itoa(). Хотел, как альтернативу для передачи по USART использовать функцию printf() - контроллер зависает напрочь. А причём тут printf? Нужно использовать sprintf. С этим же набором он у меня прекрасно работает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andron86 0 7 мая, 2012 Опубликовано 7 мая, 2012 · Жалоба Наверное так. void Integer2Str(char *s, int bin, unsigned char cnt) { s += cnt; while (cnt--) { *--s = (bin % 10) + '0'; bin /= 10; } } Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kil00 0 8 мая, 2012 Опубликовано 8 мая, 2012 (изменено) · Жалоба Спасибо, andron86, всё работает! Вячик13, sprintf() я тоже пробовал, не работает, может не так пробовал? Пробую так: char bf[50]; int sp, a = 12, b = 112; sp = sprintf(bf, "%d minus %d = %d",a,b,a-B ); print("\n\r"); Изменено 8 мая, 2012 пользователем MarYuriy Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
toweroff 1 8 мая, 2012 Опубликовано 8 мая, 2012 · Жалоба Пробую так: char bf[50]; int sp, a = 12, b = 112; sp = sprintf(bf, "%d minus %d = %d",a,b,a-B ); print("\n\r"); 1. Почему a-B 2. И что в конце? ну получили bf, а дальше-то что? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kil00 0 8 мая, 2012 Опубликовано 8 мая, 2012 · Жалоба 1. Почему a-B 2. И что в конце? ну получили bf, а дальше-то что? 1.Потому что B - это часть преобразованного смайлика - я упустил это, когда отправил сообщение -> B). B ) 2. Я и не понимаю, как им пользоваться. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
toweroff 1 8 мая, 2012 Опубликовано 8 мая, 2012 · Жалоба мда... sprintf(bf,"%d",a); print(bf); print("\n\r"); в Вашем случае в bf получите 12 minus 112 = -100 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kan35 7 8 мая, 2012 Опубликовано 8 мая, 2012 · Жалоба Для того, чтобы prntf заработал следует во первых определить функцию вывода символа int putchar (int); Кроме того, для нормально работы printf (чтобы не зависал) следует увеличить стек на 200-300 слов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
карабас 0 9 мая, 2012 Опубликовано 9 мая, 2012 · Жалоба и еще полезно почитать реализацию Chana, ссылка http://elm-chan.org/fsw/strf/xprintf.html Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться