STM32F0 UART - printf

Michal Grunt michal.grunt na vynet.cz
Čtvrtek Srpen 22 11:50:23 CEST 2013


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;
}


Další informace o konferenci Hw-list