你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。
chrome
firefox
safari
ie8及以上
ST
意法半导体官网
STM32
中文官网
ST
全球论坛
登录/注册
首页
技术问答
话题
资源
创客秀
视频
标签
积分商城
每日签到
关于Printf重定向.
[复制链接]
jaerryz
提问时间:2020-9-22 14:53 /
问答
是否解决:
用keil仿真 无法用printf打印.想用printf重定向到Usart1的方法,使printf打印信息能够在UART#1的窗口打印出来.
硬件连接用的是SW(没有连SWO引脚,只连接DIO和CLK)接口方式. 芯片USART1的RX TX引脚反接仿真器RX TX引脚.
这种连接方式可以使printf重定向到usart1用Keil实现在线调试吗?
我试了好多次都实现不了!!!~
求大佬帮忙..
赞
0
收藏
0
评论
5
分享
发布时间:2020-9-22 14:53
举报
请先
登录
后回复
5个回答
radio2radio
回答时间:2020-9-22 15:39:00
a0a.1 32b0c
试一试这个:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
extern UART_HandleTypeDef huart1;
//USART1 retargetting:
struct __FILE
{
int handle;
};
FILE __stdout;
// fgetc
int fgetc(FILE *f) {
uint8_t ch = 0;
while(HAL_UART_Receive(&huart1, &ch, 1, 100000));
return((int)ch);
}
// fputc
int fputc( int ch, FILE *f )
{
while ( (USART1->SR & 0X40) == 0 )
;
USART1->DR = (uint8_t) ch;
return (ch);
}
//_ttywrch
int _ttywrch( int ch )
{
ch = ch;
return (ch);
}
复制代码
赞
0
评论
回复
支持
反对
butterflyspring
回答时间:2020-9-24 12:05:12
a0a.1 32b0c
官方的很多固件库里有相关的例程,参照使用即可。例如:
STM32Cube_FW_F1_V1.8.0\Projects\STM3210E_EVAL\Examples\UART\UART_Printf\MDK-ARM
赞
0
评论
回复
支持
反对
废鱼
回答时间:2020-9-24 14:36:20
a0a.1 32b0c
楼主,你用的是什么仿真器?可以使用一个TTL的USB串口板连接USART1进行测试。确定仿真器的串口可以正常使用。
赞
0
评论
回复
支持
反对
qq12271229
回答时间:2020-9-24 21:57:18
a4a.1 32b0c
我现在串口也遇到一个问题,真的是奇了怪了,加入了fputc重定向函数,printf就是重定向不了!现象是fputc都进不去!用HAL的API进行串口输出就是正常的!
赞
0
评论
回复
支持
反对
久远寺有珠
回答时间:2020-9-25 16:02:08
a0a.1 32b0c
提示:
作者被禁止或删除 内容自动屏蔽
赞
0
评论
回复
支持
反对
所属标签
相似问题
关于
意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号
手机版
快速回复
返回顶部
返回列表
试一试这个:
STM32Cube_FW_F1_V1.8.0\Projects\STM3210E_EVAL\Examples\UART\UART_Printf\MDK-ARM