刚刚接触LM3S8962 想编个串口程序,方便以后调试程序,于是把以前的一小段拷贝过来 如下: void UARTSendString(unsigned long ulBase, char* pt) { while(*pt) UARTCharPut(ulBase, *pt++); }
/*此函数无法使用,调用vsprintf、sprintf将引起硬件错误 void UARTPrintf (unsigned long ulBase, char* fmt, ...) { va_list ap; char string[256]; va_start(ap, fmt); vsprintf(string, fmt, ap); UARTSendString(ulBase, string); va_end(ap); }*/
结果就是不能使用,使用就引起硬件错误,进入FaultISR中断, 在流明那瑞网站的BBS上也有这个问题,都是说多次调用vsprintf就出错, 在KEIL和IAR编译下都这样,请问有知道是怎么回事么? 我很喜欢用在字符串中“%d”之类的东西,很方便,现在咋整呢??? |