STM32F0 UART - printf

Michal Grunt michal.grunt na vynet.cz
Čtvrtek Srpen 22 15:51:22 CEST 2013


Tak jsem to vyřešil jinak. Použil jsem xprintf a běží to.
http://elm-chan.org/fsw/strf/xprintf.html


-----Original Message-----
From: hw-list-bounces na list.hw.cz [mailto:hw-list-bounces na list.hw.cz] On Behalf Of Michal Grunt
Sent: Thursday, August 22, 2013 11:50 AM
To: hw-list na list.hw.cz
Subject: STM32F0 UART - printf

Zdravím,
potřeboval bych poradit ohledně UARTu resp. použití funkce printf. GPIO pro UART mám nastavené a UART je funkční (nakonfigurováno bez přerušení, nevím zda je zrovna pro tento případ nutné). Když použiji funkci USART_SendData(USART1, 'X') v terminálu na PC se mi znak X ukáže, ale nějak nemůžu donutit k funkci printf. V projektu mám soubor https://github.com/danepowell/stm32f0/blob/master/src/syscalls.c (UART2 jsem v definicích přepsal na UART1). V hlavním kódu mám mimo definice GPIO ještě toto (na konci emailu). Jinak tam v podstatě nic není (konfigurace GPIO, to co je dole a printf("test"). Neschází mi tam ještě něco?

Děkuji

#ifdef __GNUC__
  /* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf
     set to 'Yes') calls __io_putchar() */
  #define PUTCHAR_PROTOTYPE int __io_putchar(int ch) #else
  #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f) #endif /* __GNUC__ */

PUTCHAR_PROTOTYPE
{
  /* Place your implementation of fputc here */
  /* e.g. write a character to the USART */
  USART_SendData(USART1, (uint8_t) ch);
  /* Loop until the end of transmission */
  while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET)
  {}
  return ch;
}
_______________________________________________
HW-list mailing list  -  sponsored by www.HW.cz Hw-list na list.hw.cz http://list.hw.cz/mailman/listinfo/hw-list


Další informace o konferenci Hw-list