关于Ubuntu+vscode环境下,stm32添加stdio.h和重定向printf

关于Ubuntu+vscode环境下,stm32添加stdio.h和重定向printf

vscode 添加stdio.h

当需要用到stdio.h时,需要在vscode添加头文件路径,一般为/usr/include
一般方法为点击不能识别的#include“xxxx”,然后点击出现的黄色灯泡,选择编辑头文件路径,然后添加/usr/include/**
在这里插入图片描述

重定向printf

这里提供的是通过gcc编译环境下的重定向printf的方法,使用keil编译的另找。只需要添加一下代码在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

PUTCHAR_PROTOTYPE
{
    HAL_UART_Transmit(&huart1 , (uint8_t *)&ch, 1, 0xFFFF);
    return ch;
}
int _write(int file, char *ptr, int len)

{
      int DataIdx;
      for (DataIdx = 0; DataIdx < len;DataIdx++)
     {
           __io_putchar(*ptr++);
     }
      return len;
}

其中&huart1,改为自己定义的串口句柄,这里使用的stm32cube软件自动生成的代码,所以是&huart1.



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值