你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

关于printf在串口助手上无法显示的问题

[复制链接]
zzuzph 提问时间:2018-5-1 11:41 /
做DW1000测距,硬件在线调试没问题了,可以完成测距,但是测距的结果通过串口在串口助手上显示不出来,不知道是哪里出了问题
求各位大神看一下
电路部分
2UWLZS`(H9X{%F)2X1_ON1F.png
_DYB$(6RP05(F4M$N`JYES1.png
程序部分
$~M)%(~7M1Q7OE907O~I~$S.png
4CX4SPBH1GT5KXO0$S_KO@1.png
时钟设置等
(V6BAT}Y7B[E0TCL[KV97MC.png
L]5BKI{VINJ5D4U}PXY[)BI.png

收藏 评论17 发布时间:2018-5-1 11:41

举报

17个回答
七哥 回答时间:2018-5-2 00:08:24
本帖最后由 toofree 于 2018-5-2 00:15 编辑

你用的哪款片子。
一般PA9、PA10才是USART1,如果要用PB6、PB7作为USART1的话,需要remap一下。我眼拙,没找到你remap的地址。

傲游截图20180502001351.jpg

傲游截图20180502001420.jpg


评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

wenyangzeng 回答时间:2018-5-1 13:38:19
printf需要重定向:
  1. #ifdef __GNUC__
  2.   #define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
  3. #else
  4.   #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
  5. #endif

  6. PUTCHAR_PROTOTYPE
  7. {
  8.   HAL_UART_Transmit(&huart2, (uint8_t *)&ch, 1, 0xFFFF);
  9.   return ch;
  10. }
复制代码


评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

zzuzph 回答时间:2018-5-1 16:07:10
wenyangzeng 发表于 2018-5-1 13:38
printf需要重定向:

我发现我代码里已经有了
int fputc(int ch, FILE *f)

{

USART_SendData(USART1, (unsigned char) ch);// USART1 ???? USART2 ?

while (!(USART1->SR & USART_FLAG_TXE));

return (ch);


}
还需要重定向吗
zzuzph 回答时间:2018-5-1 11:48:26
我用的USB转TTL把板子连到电脑上
zzuzph 回答时间:2018-5-1 15:59:31
wenyangzeng 发表于 2018-5-1 13:38
printf需要重定向:

请问是直接将这段代码复制到主函数里吗?
wenyangzeng 回答时间:2018-5-1 16:43:36
zzuzph 发表于 2018-5-1 16:07
我发现我代码里已经有了
int fputc(int ch, FILE *f)

无标题.png

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

wenyangzeng 回答时间:2018-5-1 16:44:52
zzuzph 发表于 2018-5-1 16:07
我发现我代码里已经有了
int fputc(int ch, FILE *f)

共有2段代码
zzuzph 回答时间:2018-5-1 17:17:16
zzuzph 回答时间:2018-5-1 17:18:12

复制进去发现全是警告 HAL_UART_Transmit有点问题
wenyangzeng 回答时间:2018-5-1 19:34:01
zzuzph 发表于 2018-5-1 15:59
请问是直接将这段代码复制到主函数里吗?

这是举例HAL库的代码,如果你是标准固件库,则要复制标准固件库的代码。这在ST官网可以找到的。
zzuzph 回答时间:2018-5-1 21:10:04
wenyangzeng 发表于 2018-5-1 19:34
这是举例HAL库的代码,如果你是标准固件库,则要复制标准固件库的代码。这在ST官网可以找到的。 ...

谢谢你
Cortexxx 回答时间:2018-5-1 21:39:09
你用USART_SendData()这个function 可以输出数据吗?应该不是printf 的问题。你uart初始化没做好

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

zzuzph 回答时间:2018-5-1 22:35:38
Cortexxx 发表于 2018-5-1 21:39
你用USART_SendData()这个function 可以输出数据吗?应该不是printf 的问题。你uart初始化没做好 ...

那该怎么改呢?我还有一个疑问,芯片定义的USART1-TX,RX和板子实际焊接的不一样,这会有影响吗?
zzuzph 回答时间:2018-5-2 09:53:04
toofree 发表于 2018-5-2 00:08
你用的哪款片子。
一般PA9、PA10才是USART1,如果要用PB6、PB7作为USART1的话,需要remap一下。我眼拙,没 ...

太谢谢你了,我用的107VC,板子是别人给我的,我一直都纠结引脚这个问题,觉得不太对又不知道怎么解决
12下一页

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版