TI中文支持网
TI专业的中文技术问题搜集分享网站

TI-RTOS例程UART串口问题,无法打印出来,求指教

你好,这是我写的一段UART的代码,

/*串口声明*/
char input;
UART_Handle uart;
UART_Params uartParams;

static PIN_State ledPinState;
const char echoPrompt[]="\fEchoing characters:\r\n";

PIN_Config ledPinTable[] = {
Board_LED1 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
Board_LED2 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
PIN_TERMINATE
};
void echoFxn(UArg a0,UArg a1)
{
while(1)
{
UART_read(uart, &input, 1);
UART_write(uart, &input, 1);
}
}
int main(void)
{

/**************************GPIO灯********************************************/ PIN_Handle ledPinHandle;
Board_initGeneral();
ledPinHandle = PIN_open(&ledPinState, ledPinTable);
PIN_setOutputValue(ledPinHandle, Board_LED1, 1);
/*************************串口***********************************************/
UART_init(); //USart ini
UART_Params_init(&uartParams); //串口配置
uartParams.writeDataMode = UART_DATA_BINARY; //写数据模式
uartParams.readDataMode = UART_DATA_BINARY; //读数据模式
uartParams.readReturnMode = UART_RETURN_FULL; //返回模式
uartParams.readEcho = UART_ECHO_OFF;
uartParams.baudRate = 9600; //波特率
uartParams.stopBits=UART_STOP_ONE;
uartParams.parityType=UART_PAR_NONE;
uart = UART_open(Board_UART0, &uartParams); //打开串口
UART_write(uart, echoPrompt, sizeof(echoPrompt));// UART_read(uart, &input, 1);
// UART_write(uart, &input, 1);
// System_flush();

// /* This example has logging and many other debug capabilities enabled */
// System_printf("This example does not attempt to minimize code or data "
// "footprint\n");
// System_flush();
//
// System_printf("Starting the UART Echo example\nSystem provider is set to "
// "SysMin. Halt the target to view any SysMin contents in "
// "ROV.\n");
// /* SysMin will only print to the console when you call flush or exit */
// System_flush();

/* Start BIOS */
BIOS_start();

return (0);
}

在TI-RTOS例程基础上改了一点,请问有什么问题啊,无法打印出来,求指教!

Maka Luo:

Board_initUART();

/* Construct BIOS objects */ Task_Params_init(&taskParams); taskParams.stackSize = TASKSTACKSIZE; taskParams.stack = &task0Stack; Task_construct(&task0Struct, (Task_FuncPtr)echoFxn, &taskParams, NULL)

Task初始化咋没有了,你这改动不是一点。应该是无法启动任务执行。

wenjing guo:

回复 Maka Luo:

你好,刚才把任务初始化了,还是无法进行串口打印,在进行仿真中,发现主要问题是单步调试可以执行 UART_write(uart, echoPrompt, sizeof(echoPrompt));,却无法执行UART_write(uart, &input, 1);,请问是什么问题呢,input声明过了,程序没有报错。想再请教一下您,谢谢啦

wenjing guo:

回复 Maka Luo:

这个问题我卡了好久了,求解答呀,不胜感激!!

wenjing guo:

回复 Maka Luo:

求指教啊,谢谢啦

xin wang22:

回复 wenjing guo:

我在调试uart例程的时候也发现修改后可以打印字符串,但是不能打印input,但input那句是例程里写的应该没有问题,但因为不需要直接把他删了,也没有细想,当时猜测可能是input未赋值的原因

wenjing guo:

回复 xin wang22:

我现在也没有用input那句了只用了UART_write(uart, echoPrompt, sizeof(echoPrompt)); ,单步调试时可以进入UART_write(uart, echoPrompt, sizeof(echoPrompt)); ,但是无法通过串口助手讲字符打印出来,是怎么回事啊,没有配置成功吗?请教

xin wang22:

回复 wenjing guo:

意思是说你可以运行通过这句代码,但串口助手没有打印是吗?

wenjing guo:

回复 xin wang22:

对呀,运行通过这句代码,但是串口助手没有显示

xin wang22:

回复 wenjing guo:

uart初始化部分如果你是照搬例程的应该没有问题,你尝试下在bios启动后,也就是任务的回调函数中使用uartwrite,如果不行的话就应该是串口连接的问题了,不知道你用的什么连接方式

wenjing guo:

回复 xin wang22:

按您的方法试了一下,发现我的程序执行不到BIOS_start();,请问是什么问题啊

赞(0)
未经允许不得转载:TI中文支持网 » TI-RTOS例程UART串口问题,无法打印出来,求指教
分享到: 更多 (0)