| 本帖最后由 拨云人 于 2015-5-5 11:43 编辑 
 之前用的ST官方外设库来开发时,使用 printf 没有问题,但是转到 stm32cube 上就出问题了呢,我的步骤是这样的:
 
 
 1.  使用 STM32Cube_FW_F0_V1.x.x 自动生成了一段初始化 UART 的MDK 工程。
 2.  在  main.c 文件中 添加如下代码(已省却注释):
 
 #include "stdio.h"
#ifdef __GNUC__
  #define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
  #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif /* __GNUC__ */
  
/* Private variables ---------------------------------------------------------*/
UART_HandleTypeDef huart1;
/* Buffer used for transmission */
uint8_t aTxBuffer[] = "send by HAL_UART_Transmit() ";
PUTCHAR_PROTOTYPE
{
    HAL_UART_Transmit(&huart1, (uint8_t*)ch, 1, 0xFFFF);   
    return ch;   
}
3.  然后在主函数中使用 printf(“hello...\n”) 发现打印出来的错误.
 4.  直接使用  HAL_UART_Transmit(&huart1 , (uint8_t *)&aTxBuffer, sizeof(aTxBuffer), 0xFFFF);   打印正确.
 
 请问有没有人遇到过这样的情况,使用STM32Cube的时候该如何才能使用 printf 函数呢 ?
 
 
 
 
 
 |