在了解ek-lm3s811时,看到uart_echo的demo,想要用到自己的项目中,但后来出现不能回显得问题,所以就新建了一个项目,将uart_echo项目中的源码拷贝到新项目中,一切都按照demo中的项目配置,编译下载后,仍然出现不能回显得问题,而且项目配置一样的情况下,生成的code大小还是不一样,所有的文件不一样的地方在startup.s文件中,但是这个文件是keil自动生成的,这个会有影响吗?都是使用的同样的库函数,我想差别就在其他的配置上。图片上显示的一个是TI(原demo)一个 Luminary(自己项目生成),这个影响应该很大,里面的代码也有几行不一样。问题会是出现在这里吗,如何解决这个问题
此帖出自
小平头技术问答
你需要加一个UARTSpaceAvail(UART0_BASE))来判断FIFO是不是还有空间。
void MCU_UART0Printf(const char *pucBuffer,...)
{
char buf[MCU_UART0_TX_MAX_BUFF + 1u];
unsigned long len , i = 0;
va_list vArgs;
buf[0] = (char)0u;
va_start(vArgs, format);
vsnprintf(( char *)buf, sizeof(buf) - 1, ( const char*)pucBuffer, vArgs);
va_end(vArgs);
len = Str_Len(buf);
while(len)
{
if(UARTSpaceAvail(UART0_BASE))
{
/*Write the next character to the UART.*/
UARTCharPutNonBlocking(UART0_BASE, buf);
len--;
i++;
}
}
}
一周热门 更多>