[STM32U5] 【NUCLEO-U575ZI-Q测评】STM32CubeIDE 实现printf

[复制链接]
740|4
 楼主| lulugl 发表于 2023-2-19 11:59 | 显示全部楼层 |阅读模式
【目的】实现串口输出、重定向printf【开发环境】MacOS+STM32CubeIDE
【硬件】NUCLEO-U575ZI-Q开发板
【步聚】
1、https://bbs.21ic.com/icview-3284898-1-1.html,在这篇的基础之上添加串口输出。
2、增加串口重定向代码
3、配置printf float
【具体过程】

1、在uart.c中增加如下代码实现printf重定向。
  1. /* USER CODE BEGIN 1 */

  2. #include "stdio.h"

  3. #ifdef __GNUC__

  4. #define PUTCHAR_PROTOTYPE int __io_putchar(int ch)

  5. PUTCHAR_PROTOTYPE
  6. {

  7.   HAL_UART_Transmit(&huart1, (uint8_t*)&ch, 1, HAL_MAX_DELAY);
  8.   return ch;
  9. }
  10. #endif
  11. /* USER CODE END 1 */
2、在main.c头文件中增加#include <stdio.h>

在main函数中增加如下代码:
  1.   /* USER CODE BEGIN 2 */
  2.   HAL_UART_Transmit(&huart1, (uint8_t*)"this uart transmit data\r\n", sizeof("this uart transmit data\r\n"), HAL_MAX_DELAY);
3、编译下到开发板,实现效如下:
  1. this uart transmit data
  2. this is printf


usysm 发表于 2023-3-3 21:01 | 显示全部楼层
STM32CubeIDE 如何移植printf?
 楼主| lulugl 发表于 2023-3-3 22:13 | 显示全部楼层
直接拷一程 代码就行了
#include "stdio.h"



#ifdef __GNUC__



#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)



PUTCHAR_PROTOTYPE

{



  HAL_UART_Transmit(&huart1, (uint8_t*)&ch, 1, HAL_MAX_DELAY);

  return ch;

}

#endif
jimmhu 发表于 2023-3-10 10:26 | 显示全部楼层
这个不是使用的keil的 microlib吗?
 楼主| lulugl 发表于 2023-3-10 12:19 | 显示全部楼层
这个不是keil是stm32cubeide
您需要登录后才可以回帖 登录 | 注册

本版积分规则

188

主题

844

帖子

12

粉丝
快速回复 在线客服 返回列表 返回顶部