希望通过printf() 将内容打印到串口并输出,需要先将串口初始化,设置好波特率,pin 脚模式,中断等,然后有两种方式:
-
勾选 Use MicroLIB. Options for Target --> Target(Tab) -->勾选Use MicroLIB,然后添加如下代码
int fputc(int ch, FILE *f) { while((USART1->SR&0X40)==0);//循环发送,直到发送完毕 USART1->DR = (u8) ch; return ch; }
注意:必须勾选Use MicroLIB
-
添加如下代码,可以不勾选Use MicroLIB。勾选了对打印输出到串口也没有影响的。
#pragma import(__use_no_semihosting) //标准库需要的支持函数 struct __FILE { int handle; }; FILE __stdout; //定义_sys_exit()以避免使用半主机模式 void _sys_exit(int x) { x = x; } //重定义fputc函数 int fputc(int ch, FILE *f) { while((USART1->SR&0X40)==0);//循环发送,直到发送完毕 USART1->DR = (u8) ch; return ch; }