首页 > 其他分享 >stm32 printf 重定向问题

stm32 printf 重定向问题

时间:2024-08-17 21:37:59浏览次数:5  
标签:__ STM32 ch 重定向 int huart1 stm32 printf

最终解决方案
新建一个stm32_printf.h 头文件,在main.c 中include

#ifndef STM32_SPIDMA_MODE_STM32_PRINT_H
#define STM32_SPIDMA_MODE_STM32_PRINT_H
#include "stm32f1xx_hal.h"
#include "string.h"
extern UART_HandleTypeDef huart1;
void print_f(char* str){
    HAL_UART_Transmit(&huart1, (uint8_t*)str, strlen(str), 1000);
}
#endif //STM32_SPIDMA_MODE_STM32_PRINT_H

使用自己定义的 print_f 注意!!!!不是 printf
无所谓,功能达到就行了,很稳定,比重定向什么好太多,不需要折腾,这个头文件还能方便共用,批量该函数名很容易,现在的IDE

之前各种搞都不行
比如

  1. https://www.cnblogs.com/xingboy/p/9522940.html中所提的
  2. 选上”Use MicroLIB”这是KEIL自带的一个简易的库

之前可以的

#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__ */

/**
* @brief Retargets the C library printf function to the USART.
* @param None
* @retval None
*/
PUTCHAR_PROTOTYPE
{
HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, HAL_MAX_DELAY);
return ch;
}

这个之前我试过是可以的,这次不知道为什么不行,好像之前为了使用clion 调试,用什么程序修改了 microlib的模式。

最后说一句,STM32 最好还是在keil中编译,但是代母可以在clion中修改
其他参考
https://www.jianshu.com/p/0bd6ee925e1c

标签:__,STM32,ch,重定向,int,huart1,stm32,printf
From: https://www.cnblogs.com/Nicoooolas/p/18365022

相关文章

  • printf("goodbye, Dennis");
    來源:https://archive.vn/5yAOw#selection-931.0-1071.225 Babbage|Obituaryprintf("goodbye,Dennis");DennisRitchie,afatherofmoderncomputing,diedonOctober8th,aged70Oct20th2011ShareByG.F.|SEATTLEDennisRitchie,a......
  • 基于stm32智能家居
    智能家居,基于stm32f103c8t6+温湿度传感器+超声波传感器+光敏智能家居物联网的一个课题项目,然后接下来我就介绍一下我在做课设的时候,一些步骤,最后将完整代码放入最后,方便各类爱好者提出问题以及修改。主要功能通过阿里云控制继电器,在阿里云云端上面显示当前传感器数据通过连......
  • STM32F103C8T6 HAL库生成2.4G通信
    STM32F103C8T6HAL库生成2.4G通信的报告一、引言本报告旨在阐述如何使用STM32F103C8T6微控制器及其HAL库实现基于2.4GHz频段的无线通信功能,通过NRF24L01无线模块实现数据的发送与接收。本次实验主要利用了STM32CubeMX进行项目配置,并使用KeilMDK-ARM作为开发环境进行编程。......
  • 基于STM32的录音机设计
    鱼弦:公众号【红尘灯塔】,CSDN博客专家、内容合伙人、新星导师、全栈领域优质创作者、51CTO(Top红人+专家博主)、github开源爱好者(go-zero源码二次开发、游戏后端架构https://github.com/Peakchen)基于STM32的录音机设计1.介绍基于STM32的录音机设计是一种利用STM32微控......
  • 萌新赛 sprintf漏洞
    首先是个.git源码源码泄露,用githack回复一下源码源码<?php$pass=sprintf("andpass='%s'",addslashes($_GET['pass']));$sql=sprintf("select*fromuserwherename='%s'$pass",addslashes($_GET['name']));?>......
  • 【linux学习指南】Linux管理文件与处理数据二(重定向与管道)
    文章目录......
  • STM32中断系统之EXTI外部中断
    文章目录前言一、中断系统1.1中断系统简介1.2中断的执行流程1.3STM32中断二、NVIC(NestedVectoredInterruptController)嵌套向量中断控制器2.1NVIC简介2.2NVIC基本结构2.3NVIC优先级分组三、EXTI(ExternInterrupt)外部中断3.1EXTI简介3.1.1支持的触发方式3.1.......
  • printf函数(3)
    4.2.总是显示正负号默认情况下,printf()不对正数显示+号,只对负数显示-号。如果想让正数也输出+号,可以在占位符的%后面加上一个+。1#include<stdio.h>2intmain()3{4printf("%+d\n",12);//输出+125printf(“%+d\n",-12);//输出-126return0;7}上面示例中,%+d可以确保......
  • STM32与华为云IoTDA的上传下达
    实现了Mqtt的链接后,需要与华为云IoTDA进行属性上报、命令解析、命令应答等。需要参照华为云官网给出的API参考使用前必读_设备接入IoTDA;1.华为云函数构建1.1.设备属性上报该功能就是用于设备按产品模型中定义的格式将属性数据上报给平台,最通常的温度信息设备状态等,上报后......
  • 获取文件流的文件描述符 printf("The file descriptor is: %d\n"
    intmain(intargc,constchar*argv[]){DIR*dir=opendir("./");//当前目录if(NULL==dir){fprintf(stderr,"opendirerror\n");return1;}while(1){[www.laipuhuo.com](https://www.laipuhuo.com)structdirent*info=readdir(dir);......