你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。
chrome
firefox
safari
ie8及以上
ST
官网
STM32
中文官网
ST
全球论坛
登录/注册
首页
技术问答
话题
资源
创客秀
视频
标签
每日签到
STM32团队2
论坛吐槽优化专区
升级测试
关于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
评论
回复
支持
反对
alicekuonji
回答时间:2020-9-25 16:02:08
a0a.1 32b0c
首先测试串口好坏,以及usb转ttl的好坏
关于重定向网上都有,包括cube里面自带的例程都是有的
赞
0
评论
回复
支持
反对
所属标签
相似问题
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
微信公众号
手机版
快速回复
返回顶部
返回列表
试一试这个:
STM32Cube_FW_F1_V1.8.0\Projects\STM3210E_EVAL\Examples\UART\UART_Printf\MDK-ARM
关于重定向网上都有,包括cube里面自带的例程都是有的