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

HAL 笔记1----printf 串口重定向

[复制链接]
idodoyo 发布时间:2015-7-18 17:04
HAL 笔记1----printf 串口重定向2 \7 N# I4 L) u' P5 S: j

. D1 Y* r5 ~+ M/ B4 w* C: g6 P
" G; z5 b& V7 k% N5 i! f+ W- C#ifdef __GNUC__: M' C9 q( u% [/ O9 c2 n  c/ S* \: s9 {
  /* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf
) ~$ e* y- z1 f6 p  [3 w6 \7 M     set to 'Yes') calls __io_putchar() */1 }2 j$ s3 A1 a9 t3 n; F
  #define PUTCHAR_PROTOTYPE int __io_putchar(int ch)9 R% u/ \% z7 L) T7 Q
#else
% k5 K* M3 Q4 I# a4 d0 f8 `5 p  #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)6 I2 A* G# ~! x- H
#endif /* __GNUC__ */- ~& M6 d9 Y8 w- g) R/ A
/**
+ Q% p4 x) V* a( l# Z$ ]  * @brief  Retargets the C library printf function to the USART.& N; E( k3 _  i
  * @param  None- ?- ]4 ~. {# ?
  * @retval None
6 d9 T: T) F& n* }! Y& b  M  */, C: H0 H5 X' a7 @+ W1 Q
PUTCHAR_PROTOTYPE8 J0 @" y: l7 |7 T, Z
{
( s1 F* ?$ f! l; G& Z  /* Place your implementation of fputc here */
1 ]6 B3 @, t5 c  ?  /* e.g. write a character to the EVAL_COM1 and Loop until the end of transmission */
0 Y) S$ H6 m1 C2 G" K  HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xFFFF); 2 g0 r  g# v0 F( ]
9 B# R, j$ p* u3 j& G7 w2 d7 h7 b9 i* p
  return ch;
) c4 |/ i0 Y- ?* }9 V/ U}% p5 J3 I: X6 o* c1 r0 E
; g" q9 a0 |, `' P/ b* \
这里面是putchar,  getchar  类似., HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xFFFF); 参数huart1 替换为所需要的串口号即可/ V* v$ b; K' l

2 [, _$ r: b/ N) x) F* V
赞 收藏 5 评论8 发布时间:2015-7-18 17:04

举报

8个回答
moyanming2013 回答时间:2015-7-18 17:28:44
然后呢???
idodoyo 回答时间:2015-7-18 17:50:29
moyanming2013 发表于 2015-7-18 17:28: d# c, y  t' {6 }% v
然后呢???
; o1 S3 C/ \3 H! a0 o. Q6 Z* b7 C
你需要什么然后?
不撸僧 回答时间:2015-7-18 17:56:09
顶一个!
你好我好大家好! 回答时间:2015-7-19 19:37:41
顶一个      
yanhaijian 回答时间:2015-7-19 23:24:04
就是把fputc、fgetc两个函数进行重载。
星辰一方 回答时间:2015-9-8 21:50:32
idodoyo 发表于 2015-7-18 17:50* z3 B7 u# F- @3 {2 _- \
你需要什么然后?
! ?% g# q$ |! D! [3 {! w  J  v
为什么我粘贴进去没反应啊,huart1改成huart2了已经,也没有报错
glyhw 回答时间:2016-11-3 07:33:57
麻烦发一个Demo程序,另外有一个不明白的地方, 不是进mian()之前已配置好时钟了吗?为什么还要SystemClock_Config();
黑皮男 回答时间:2016-11-3 07:48:48
glyhw 发表于 2016-11-3 07:33
+ Q8 R1 v0 ^' C! ~& r麻烦发一个Demo程序,另外有一个不明白的地方, 不是进mian()之前已配置好时钟了吗?为什么还要SystemClock ...

% i3 T5 f" `/ [那是默认时钟,如果希望灵活更改时钟,个人觉得还是自己在代码里进行配置的好
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版