Sprintf как настраивается для работы с разными usart ? Также интересно как при этом сможет работать с DMA usart ?
Составляю для себя библиотеку по usart с оптимальной работой в будущем,нацелен на модуль SIM900 или аналог его,было дело находил на али.
sprintf переопределение вывода
Сообщений 1 страница 7 из 7
Поделиться12017-10-29 05:14:28
Поделиться22017-10-29 12:01:53
CERGEI sprintf выводит в буфер. Там нечего настраивать. int sprintf(char *buf, const char *format, arg-list). Выводишь в нужную часть буфера через sprintf, потом как обычно посылаешь данные через ПДП. И еще функция вернет количество записанных байт в буфер.
Отредактировано MasterElectric (2017-10-29 12:08:09)
Поделиться32017-10-29 12:29:58
А точно,думал как то можно настроить напрямую вывод на нужный 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. */
Поделиться42017-10-29 12:32:41
А простите сообразил,пример из кода 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");
Поделиться52017-11-20 22:37:58
а еще sprintf кушает 2кб памяти. Я стараюсь ее не использовать без необходимости.
Поделиться62017-11-21 01:18:36
Atomic-dm Ну если флеша минимум 16к, то это не так важно.
Поделиться72017-12-06 16:30:51
Ну в stm32f103c8t6 флэша 64 кб , так что это пыль.