|
|
  |
Преобразование int в char и prntf |
|
|
|
May 7 2012, 13:10
|
Участник

Группа: Участник
Сообщений: 59
Регистрация: 20-11-10
Пользователь №: 61 036

|
Здравствуйте!
Использую Keil и stm32f103.
Как преобразовать переменную в строку? В хидерах нет функции itoa().
Хотел, как альтернативу для передачи по USART использовать функцию printf() - контроллер зависает напрочь.
|
|
|
|
|
May 7 2012, 13:58
|
Участник

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

|
Цитата(MarYuriy @ May 7 2012, 16:10)  Здравствуйте!
Использую Keil и stm32f103.
Как преобразовать переменную в строку? В хидерах нет функции itoa().
Хотел, как альтернативу для передачи по USART использовать функцию printf() - контроллер зависает напрочь. А причём тут printf? Нужно использовать sprintf. С этим же набором он у меня прекрасно работает.
|
|
|
|
|
May 7 2012, 14:26
|
Местный
  
Группа: Участник
Сообщений: 406
Регистрация: 1-03-06
Пользователь №: 14 821

|
Наверное так. Код void Integer2Str(char *s, int bin, unsigned char cnt) { s += cnt;
while (cnt--) { *--s = (bin % 10) + '0'; bin /= 10; } }
|
|
|
|
|
May 8 2012, 06:21
|
Участник

Группа: Участник
Сообщений: 59
Регистрация: 20-11-10
Пользователь №: 61 036

|
Спасибо, 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");
Сообщение отредактировал MarYuriy - May 8 2012, 06:22
|
|
|
|
|
May 8 2012, 10:01
|
Участник

Группа: Участник
Сообщений: 59
Регистрация: 20-11-10
Пользователь №: 61 036

|
Цитата(toweroff @ May 8 2012, 12:31)  1. Почему a-B 2. И что в конце? ну получили bf, а дальше-то что? 1.Потому что B - это часть преобразованного смайлика - я упустил это, когда отправил сообщение ->  . B ) 2. Я и не понимаю, как им пользоваться.
|
|
|
|
|
May 8 2012, 10:37
|

Гуру
     
Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514

|
мда... Код sprintf(bf,"%d",a); print(bf); print("\n\r"); в Вашем случае в bf получите Код 12 minus 112 = -100
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|