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