-
- /**************************************
- 通过串口0发送数据
- **************************************/
- void Uart0_Put(int data)
- {
- while(!(rUTRSTAT0 & (1<<2)));
- if(data=='\n')
- {
- rUTXH0='\r'; //替换发送
- }
- else
- {
- rUTXH0=data; //发送数据
- }
- }
- void Uart0_SendString(char *pt)
- {
- while(*pt)
- Uart0_Put(*pt++);;
- }
- /**************************************
- 批量发送数据
- **************************************/
- void Uart0_Printf(const char *fmt,...)
- {
- va_list ap;
- char string[256];
- Led_On(1);
- va_start(ap,fmt);
- Led_On(2);
- vsprintf(string,fmt,ap);
- Led_On(3);
- Uart0_SendString(string);
- Led_On(4);
- va_end(ap);
- }
为什么执行到vspringf就直接报错了?
LED_On()是我测试的,点亮第几个Led
但是led只亮了两个,意思就是到了vspringf就报错重新执行了
什么情况?
为什么测试程序中的就能执行过?代码一样的
如果我用Uart0_SendString(string);直接发送数据是没有问题的,可以发送
vspringf用到了缓冲区,是不是得设置堆栈什么的??
启动代码中我没有做设置,请问一下启动代码中哪些是必须的代码?对于我这个程序来说
|