首页 > 其他分享 >3.串口printf调试输出

3.串口printf调试输出

时间:2023-06-29 19:56:52浏览次数:34  
标签:__ ch int 串口 printf PROTOTYPE 调试

在stm32中先配置使能一个uart串口,保存自动生成uart的.h .c 文件

接着在头文件中包含stdio.h

再在c文件中添加重定向:

  GCC和keil等不同编译器调用printf时候是不同的

  可以定义一个宏保证他们的兼容性,即使printf函数重定向

 

#ifdef __GNUC__    //选择gcc编译时才会定义的宏
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
#define PUTCHAR_PROTOTYPE int fputc(int ch,FILE *f)    //单片机字符也是int类型保存
#endif


PUTCHAR_PROTOTYPE
{
	HAL_UART_Transmit(&huart1,(uint8_t *)&ch,1,0xFFFF);
	return ch;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////  

串口浮点数输出:

  由于单片机硬件资源限制(内存小),STM32单片机里C语言标准库的printf()并不支持浮点数的输出

  可以在Properties Settings中添加 -u _printf_float解决

 

标签:__,ch,int,串口,printf,PROTOTYPE,调试
From: https://www.cnblogs.com/genm/p/17510931.html

相关文章

  • 集装箱吊车门机起重机电气电器图纸一套这是调试后的最终版图纸,含程序,元件清单,集装箱的
    集装箱吊车门机起重机电气电器图纸一套这是调试后的最终版图纸,含程序,元件清单,集装箱的,供学习参考用,这是电气图纸,没有机械的。plc是315-2dp,行车图纸有很多,串电阻的,各种变频,plc通讯的这套图纸是集装箱吊车门机起重机的电气图纸,经过调试后成为最终版本。图纸包含了程序、元件清单以......
  • usb串口移植aarch64
    目标环境:arm架构,openEuler23.03 内核5.10.0开发环境:x86架构,centos7.4系统,内核3.10.0遇到的问题问题1minicom无法编译执行尝试方案1:从官网上找了源码包,并根据虚拟机中的依赖关系,下载了可能的依赖文件,导入服务器(无外网)  根据yum源找到库网址:http://repo.openeuler.org......
  • jar 包调试
    idea本地运行没有问题  打的jar包接口调用报错 Invalidboundstatementjar调试 原文链接: https://www.jb51.net/article/240922.htm问题解决 原文链接:https://blog.csdn.net/weixin_39034563/article/details/124134568问题:一般情况下,可以打成Jar包的项目,它的源......
  • Python调试中特殊的属性值: __iter__
    在调试python源码时遇到一件奇怪的事情,某个属性的值为__iter__,并且给它明确的赋别的值,发现并没有作用,如下所示:仔细思考了一下,有点儿明白了,__getattr__方法的作用是当找不到对象的属性时会调用此函数,这时,method的值'deviceInfo'就是此对象不存在的属性,所以进......
  • Apifox:在线调试 OpenAI 接口,提供便捷的开发体验
    OpenAI 的API不仅可以通过编程语言(如Python、node.js)进行调用,还可以借助 Apifox 来在线调试。Apifox提供了直观且功能强大的方式来调试OpenAI接口,帮助开发者高效地发现和解决潜在问题。通过利用Apifox,开发者能够更快速地对项目进行迭代优化,确保OpenAI接口的稳定性和可......
  • 发那科系统整套PMC梯形图设计调试维修 FANUC全套PMC设计 发那科标准PLC
    发那科系统整套PMC梯形图设计调试维修FANUC全套PMC设计发那科标准PLC详情从图2开始  内容很全请仔细看完:1.刀库程序设计(斗笠 圆盘 夹臂 机械手 伞型 都包括)2.刀架程序(电动液压伺服 都包括)3.操作方式(标准板 第三方板)4.进给轴控制(轴运动限位回零)5.主......
  • Qt编写的CAN通信调试工具源代码支持吉阳光电CAN盒和致远周立功USB转CAN卡
    Qt编写的CAN通信调试工具源代码支持吉阳光电CAN盒和致远周立功USB转CAN卡,带多线程接收可完成标准和扩展CAN帧YID发送和接收,带配置参数自动保存,定时发送,帧类型选择,文本和十六进制等。带有折叠相同的帧YID的功能,如果有相同的帧YID,则会自动折叠显示。可组装发送字节,short,int,float......
  • centos之格式化输出 printf
    ############################对齐:右对齐:printf"%s"左对齐:printf"%-s"宽度:printf"%-10s" ,左对齐,宽度为10printf “%-4.2f” ,左对齐,宽度为4,保留两位小数。 格式化说明符:%s:字符串%d:数字%f:浮点数字%o:一个八进制的数字%x:一个十六进制的数字......
  • esp32运行边界路由与nRF52833作为rcp通过串口通讯组建边界路由步骤
    1、首先搭建esp32开发环境,按照官方指导说明,我这里是建立在linux运行环境下的  Linux和macOS平台工具链的标准设置-ESP32-C6-—ESP-IDF编程指南latest文档(espressif.com)   espressif/esp-idfatv5.2-dev(github.com)   去官网下载最新版的esp-id......
  • Pycharm Debug 调试
    Pycharmdebug调试参考网址-https://zhuanlan.zhihu.com/p/62610785重点部分摘要如下stepover(F8快捷键):在单步执行时,在函数内遇到子函数时不会进入子函数内单步执行,而是将子函数整个执行完再停止,也就是把子函数整个作为一步。在不存在子函数的情况下是和stepinto效果一......