重慶便宜做網(wǎng)站的最佳的搜索引擎
檢查完所有的硬件和軟件部分,最后發(fā)現(xiàn),又是Keil的設置問題,啊啊啊啊
打開Keil的魔術棒,勾選Target的Use Microlib選項即可,但這并不是最佳方案
最終解決方案:
參考:http://t.csdnimg.cn/2Tjfc
1、使用MicroLIB,簡化嵌入式開發(fā)操作,例如你用printf()函數(shù)的時候,就會從串口1輸出字符串,當然也可以重定義到其他串口;
2、使用MicroLIB會優(yōu)化代碼空間,但會降低某些程序的執(zhí)行效率(比如: memcpy()),效率換空間;
3、由于MicroLIB不支持浮點運算,所以在有FPU單元的MCU上,使用MicroLIB并開啟FPU會讓程序死機或跑飛。
4、Microlib不支持C++,在使用C++開發(fā)MCU時,首要條件是不能使用Microlib;
放在main.c的#include<stdio.h>后面就行
/* 告知連接器不從C庫鏈接使用半主機的函數(shù) */
#pragma import(__use_no_semihosting)/* 定義 _sys_exit() 以避免使用半主機模式 */
void _sys_exit(int x)
{x = x;
}/* 標準庫需要的支持類型 */
struct __FILE
{int handle;
};
FILE __stdout;
非常感謝這位作者的帖子,終于把這個困擾了兩天的問題解決了