Микроконтроллеры

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Микроконтроллеры » Software » sprintf переопределение вывода


sprintf переопределение вывода

Сообщений 1 страница 7 из 7

1

Sprintf как настраивается для работы с разными usart ?  Также интересно как при этом сможет работать с DMA usart ?
Составляю для себя библиотеку по usart с оптимальной работой в будущем,нацелен на модуль SIM900 или аналог его,было дело находил на али.

2

CERGEI sprintf выводит в буфер. Там нечего настраивать. int sprintf(char *buf, const char *format, arg-list). Выводишь в нужную часть буфера через sprintf, потом как обычно посылаешь данные через ПДП. И еще функция вернет количество записанных байт в буфер.

Отредактировано MasterElectric (2017-10-29 12:08:09)

3

А точно,думал как то можно настроить напрямую вывод на нужный usart. А вот аргументы arg-list где можно про них почитать?

Код:
#pragma __printf_args
extern _ARMABI int sprintf(char * __restrict /*s*/, const char * __restrict /*format*/, ...) __attribute__((__nonnull__(1,2)));
   /*
    * is equivalent to fprintf, except that the argument s specifies an array
    * into which the generated output is to be written, rather than to a
    * stream. A null character is written at the end of the characters written;
    * it is not counted as part of the returned sum.
    * Returns: the number of characters written to the array, not counting the
    *          terminating null character.
    */

4

А простите сообразил,пример из кода dosikus

Код:
temp = ( ((buf[1]&0x07)<<4)|(buf[0]>>4));
    temp1=(buf[0]&0x0F);	
    temp1=((temp1<<1)+(temp1<<3));	
    temp1=(temp1>>4);	
    sprintf(txt,"%d.%d",temp,temp1);
    //USART1_str( txt);	
    //USART1_str( "\r\n");

5

а еще sprintf кушает 2кб памяти.  Я стараюсь ее не использовать без необходимости.

6

Atomic-dm Ну если флеша минимум 16к, то это не так важно.

7

Ну в stm32f103c8t6 флэша 64 кб , так что это пыль.


Вы здесь » Микроконтроллеры » Software » sprintf переопределение вывода