b. 在main.c 文件中,将以下代码复制并粘贴到main() 函数前、UART句柄声明之后的位置。你可以选择“私有函数原型”部分,如下图3所示。请注意,UART句柄必须从&huart?更改为所需UART外设的句柄(例如 &huart2)。 #ifdef __GNUC__ #define PUTCHAR_PROTOTYPE int __io_putchar(int ch) #else #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f) #endif PUTCHAR_PROTOTYPE { HAL_UART_Transmit(&huart?, (uint8_t *)&ch, 1, HAL_MAX_DELAY); return ch; }
图3:将重新定向代码添加到main.c文件中 printf() 函数现在应该可以按预期运行了,除了浮点格式说明符。要启用这些格式说明符,请继续下一步。 2 启用浮点支持(可选) 为了说明浮点格式化的问题,我们可以使用printf() 参考页面提供的示例代码。 printf("Characters: %c %cn", 'a', 65);
图4:未启用浮点格式化支持的输出示例 printf("Decimals: %d %ldn", 1977, 650000L); p rintf("Preceding with blanks: %10dn", 1977); printf("Preceding with zeros: %010dn", 1977); printf("Some different radices: %d %x %o %#x %#on", 100, 100, 100, 100, 100); printf("floats: %4.2f %+.0e %En", 3.1416, 3.1416, 3.1416); printf("Width trick: %*dn", 5, 10); printf("%sn", "A string"); 在将此代码添加到项目后,系统会显示警告,说明“不支持浮点格式化”。如果我们继续构建并运行项目,串行控制台上的输出将确认不会打印浮点数(图4)。
|