您好,我用的芯片是STMF103C8T6,MDK4.23。 我在代码里加入 #pragma import(__use_no_semihosting) //标准库需要的支持函数 struct __FILE { int handle; /* Whatever you require here. If the only file you are using is */ /* standard output using printf() for debugging, no file handling */ /* is required. */ }; /* FILE is typedef’ d in stdio.h. */ FILE __stdout; //定义_sys_exit()以避免使用半主机模式 _sys_exit(int x) { x = x; } //重定义fputc函数 int fputc(int ch, FILE *f) { while((USART3->SR & 0X40)==0);//循环发送,直到发送完毕 USART3->DR = (u8)ch; return ch; } 没有选择Use MicroLib,开始用printf()函数进行浮点数据打印输出都没任何问题,可后来添加了些读写EEPROM的函数后,printf只要遇到打印输出浮点数据的就整个崩溃了,因为有看门狗,所以程序每次遇到这种情况就会重启,而打印其它整型、字符等都没问题。我仔细看了看新添加的函数和串口没关系。后来我又用sprintf转换浮点型数据到一个数组里,结果也是程序直接崩溃。实在无奈下,点击配置,选上了Use MicroLib,这时printf输出浮点型数据就没问题了。求助这是为什么?非常感谢!!!