xil_printf和XUartLite_SendByte

为什么xil_printf导致堆栈溢出而XUartLite_SendByte不会? 有谁能解释一下? 注释部分(XUartLite_SendByte)工作正常,但最终我想在i上调用一个函数并使用xil_printf返回结果。

代码如下所示。

使用xilinx sdk进行micrlaze

#include  /*#include "xparameters.h" */ #include "xil_cache.h" /*#include "uartlite_header.h" #include "xbasic_types.h" #include "xgpio.h" #include "gpio_header.h" #include "xspi.h" #include "spi_header.h"*/ #include "xparameters.h" #include "xutil.h" #include "xuartlite_i.h" #define UART_ADDR 0x40600000 int main() { Xil_ICacheEnable(); Xil_DCacheEnable(); print("---Entering main---\n\r"); Xuint16 i; while(1==1) { while(XUartLite_IsReceiveEmpty(UART_ADDR)); i = XUartLite_RecvByte(UART_ADDR); xil_printf("%c ", i); /*while(XUartLite_IsTransmitFull(UART_ADDR));*/ /*XUartLite_SendByte(UART_ADDR, i);*/ //} } print("---Exiting main---\n\r"); Xil_DCacheDisable(); Xil_ICacheDisable(); return 0; } 

您在Xilinx论坛上发布了相同的问题。 Xilinx回复了它:

XUartLite_RecvByte()返回一个u8(或unsigned char)。 不是Xuint16。 并且xil_printf%c不会期望Xuint16。