// Printf 调用函数int fputc(int ch, FILE *f){return(Usart1_Txd(ch)); // 发送并返回数据}程序中既没有声明,也没看出怎么调用的但去掉就不行printf("Period: %u ", TIM2->CCR2); // 输出周期,清除CC2IFif(TIM2->SR & 2) // CC1IF=1printf("Width: %u\r\n", TIM2->CCR1); // 输出宽度,清除CC1IF
2 回答
繁星点点滴滴
TA贡献1803条经验 获得超3个赞
这个fputc是你平台特定的实现,不是标准实现,参数f的存在只是为了兼容其他的实现而已。
你这个平台实现是调用一个串口输出函数(Usart1_Txd)直接输出字符到硬件。
有的平台是经过文件系统的,FILE* f就要发挥作用了。
翻过高山走不出你
TA贡献1875条经验 获得超3个赞
1 平台a实现可能是这样的 int fputc(int ch, FILE *f) { fprintf(f, "%c", ch); } 2 平台b实现可能是这样的 int fputc(int ch, FILE *f) { write(stdout, &ch, 1); } 3 还有些平台可能就是像你这样的 所以,为了兼容所有实现,参数肯定得保留,你最多不用。
- 2 回答
- 0 关注
- 103 浏览
添加回答
举报
0/150
提交
取消