Перейти к содержанию
    

Преобразование int в char и prntf

Здравствуйте!

 

Использую Keil и stm32f103.

 

Как преобразовать переменную в строку? В хидерах нет функции itoa().

 

Хотел, как альтернативу для передачи по USART использовать функцию printf() - контроллер зависает напрочь.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здравствуйте!

 

Использую Keil и stm32f103.

 

Как преобразовать переменную в строку? В хидерах нет функции itoa().

 

Хотел, как альтернативу для передачи по USART использовать функцию printf() - контроллер зависает напрочь.

А причём тут printf? Нужно использовать sprintf. С этим же набором он у меня прекрасно работает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Наверное так.

void Integer2Str(char *s, int bin, unsigned char cnt)
{
    s += cnt;

    while (cnt--)
    {
        *--s = (bin % 10) + '0';
        bin /= 10;
    }
}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо, 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Пробую так:

 

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, а дальше-то что?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1. Почему a-B

2. И что в конце? ну получили bf, а дальше-то что?

 

1.Потому что B - это часть преобразованного смайлика - я упустил это, когда отправил сообщение -> B). B )

2. Я и не понимаю, как им пользоваться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для того, чтобы prntf заработал следует во первых определить функцию вывода символа

int putchar (int);

Кроме того, для нормально работы printf (чтобы не зависал) следует увеличить стек на 200-300 слов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...