Stm32 - Printf重定向(不)使用微库(Keil MDK)
#define DEBUG_USART USART1
stm32芯片调试中经常用到串口来打印一些数据,因此如果能使用类似windows的Console中的printf就很完美了~
方法1--使用微库:
1、使用微库(平台式keil-MDK),点击“魔术棒” Target标签下有个Use MicroLIB---勾选。
2、包含头文件:#include "stdio.h"
3、Printf重定向,修改fputc()函数的内容~
int fputc(int ch, FILE *f)
{
USART_SendData(DEBUG_USART, (unsigned char) ch);
while (!(DEBUG_USART->SR & USART_FLAG_TXE));
return (ch);
}
这里的:USART_SendData(DEBUG_USART, (unsigned char) ch);
while (!(DEBUG_USART->SR & USART_FLAG_TXE));
就是往串口发送一个字节的代码,修改相应的串口,初始化。这样就能使用printf了~可以一试。
方法2--不使用微库(那么就要强调不使用半主机(no semihosting)模式)
1、包含头文件#include "stdio.h"
2、重写fputc,但需要先加点东西:
#pragma import(__use_no_semihosting)
_sys_exit(int x)
{
x = x;
}
struct __FILE
{
int handle;
};
FILE __stdout;
int fputc(int ch, FILE *f)
{
USART_SendData(DEBUG_USART, (unsigned char) ch);
while (!(DEBUG_USART->SR & USART_FLAG_TXE));
return (ch);
}
这样,就完成了,同样可以使用printf语句了~
用微信扫描二维码
为博主 打个赏
金额随意 快来“打”我呀 要买枸杞当归补补~~
http://blog.sina.com.cn/s/blog_b4ce638e0102w9fw.html
Stm32 - Printf重定向(不)使用微库(Keil MDK)相关推荐
- STM32 - Printf重定向使用微库、不使用微库(Keil) (转载)
Stm32芯片调试中经常用到串口来打印一些数据,因此如果能使用类似windows的Console中的printf就很完美了~ 方法1--使用微库: 1.使用微库(平台式keil-MDK),点击&quo ...
- STM32 printf 重定向 usart3
jiause 问题描述: 今天调试串口,首先用串口1 printf打印输出,调试成功,在串口1成功的基础上,准备改用串口3 printf结果一直不成功. 串口没有一点反应. 解决过程: ...
- STM32工程模板简单套用教程(Keil MDK)
在Mdk配置stm32工程是一件很麻烦的事情,故直接套用工程模板,减少时间花费.(此处用野火的m3工程模板) 模板的配置是根据相对路径的,所以模板可以随意复制到任意一个地方. 1.文件夹改名,这里我改 ...
- keil MDK AC5向AC6迁移后如何重定向printf
从AC5向AC6迁移,已经有很多人给出了迁移的教程,AC6的编译速度着实非常有吸引力,我也尝试根据网上的教程从AC5向AC6迁移,但程序执行到printf的时候便会有问题. 有问题的重定向代码: /* ...
- Keil MDK 中利用串口及c标准库函数printf为cortex-m3做调试输出(lpc1788)
摘要: c标准库的printf是输出给显示器的,将printf函数进行修改,使其输出重定向至串口,就能实现目的.printf函数调用fputc函数完成实质输出单一字符的工作,因此将fputc函数修改使 ...
- Keil MDK STM32系列(九) 基于HAL和FatFs的FAT格式SD卡TF卡读写
Keil MDK STM32系列 Keil MDK STM32系列(一) 基于标准外设库SPL的STM32F103开发 Keil MDK STM32系列(二) 基于标准外设库SPL的STM32F401 ...
- STM32使用printf重定向到USART(串口)并打印数据到串口助手
STM32使用sprintf打印数据到串口助手 一.背景知识 二. 重定向printf到USART1 三.使用printf打印hello,world到串口助手 3.1 usart.c 3.2 usar ...
- 使用Keil MDK以及标准外设库创建STM32工程
应部分网友要求,最新加入固件库以及开发环境使用入门视频教程,同时提供例程模板,个人录制,欢迎指正.下载地址:http://dl.dbank.com/c0w0ehqynd 2013.3补充在线视频教程 ...
- stm32中如何进行printf重定向用于串口调试输出
1 在main中包含stdio.h 文件 2 Target选项框里选Use MicroLib 选项 3 在main中添加UART1_Configuration()初始化的代码 Uart1初始化, vo ...
最新文章
- 关于git bush 中不能复制黏贴的问题
- 苹果汽车高管几乎流失殆尽,一年损失7人,新年又有人被Meta挖走
- 如何将文字转换成语音?文字转语音哪个工具好
- 选项卡示例代码###
- 手电筒java_Java鼠标“手电筒”效果如何?
- 腾讯的迷你门户首页新闻用到的Silverlight技术引用
- protobuf序列化协议python教程
- 资管新政:银行资产管理业务的转型与发展 -中国银行刘东海
- Ubuntu 周立功CAN分析仪 USBCAN-II 驱动
- python对Excel合并单元格拆分
- 【verbs】ibv_reg_mr()
- 腾讯云服务器放音乐,使用腾讯云函数实现网易云音乐自动打卡签到
- C# 之 Word光标移动 GoTo 方法
- [设计报告]有屏的地方就有Bad Apple!! —— 12864版
- 提升职场表现力:讯飞智能录音笔SR901实力优选
- Leetcode--Java--340. 至多包含 K 个不同字符的最长子串
- 学python-学 Python 都用来干嘛的?
- PHPMyWind支持PDF粘贴
- 如何使用facebook_Facebook观看派对可供所有人使用(这是巨大的)
- java3d点线面_3D游戏与计算机图形学中的数学方法-点线面
热门文章
- 修改ardupilotmega.h中MAV_CMD联合体中的命令定义,增加MAV_CMD_LED_CONTROL命令
- SQL必知必会第4版读书笔记
- 路由器DNS被劫持 解决办法、网站被劫持怎么办怎么解决
- 几个强大到没朋友的资源网站 个个都是精品
- Life feelings--10--inspiration and inner motivation
- 腾讯云轻量级服务器端口开放无法访问
- 电机控制书籍复习--高性能变频调速及其典型控制系统-马小亮
- 杨建允:2022年社交电商要如何突围、会走向何方?
- BP神经网络实用性操作(四步模板)和主要网络参数介绍
- C语言与Java实现:数制转换