(1)我看到例程里面的串口是专门建立了一个任务一直接受。发送。。但我想要接受可以在中断里面。。怎么设置中断接受啊??我没看到他有提供中断函数的注册啊。。原本的HAL里面我记得是可以设置ISR的吧。
(2)再问下例程里面的SYSTEM_printf(" ",ret);是做什么的???
Yonghua Pan:
(1), 能否指明是哪个例程呢?谢谢。
(2), 这个是给串口调试用的,如果你是用CCS的编辑器的话,里面集成了console的窗口,SYSTEM_printf会打印在那里。
Jiang Bo:
回复 Yonghua Pan:
具体路径忘记了。就是ti/tirtos里面有个IAR文件夹里面带了有个uartecho的例程。。只有.c和.cfg这些。
(1)我看tirtos的uart.c里面给的函数。。但里面的UART_readPolling和UART_read有什么差别??我没看出来。。调试试了下就是UART_readPolling不会进入我设置的CALLBACK函数中。
(2)我发现必须调用一遍UART_read。才可以接收串口数据。所以我现在用的Util_startClock隔一段时间就调用read。但我希望可以数据来了,进入中断。告诉我来数据了。APP中我再调用read。把数据取出来。怎么实现啊?还有在read的callback函数里面我如果调用两次串口发送。程序就会死了。
(3)这是我的参数设置
/* Create a UART with data processing off. */ UART_Params_init(&uartParams); uartParams.readMode = UART_MODE_CALLBACK; //读取的方式是回调函数 uartParams.readCallback = board_UART_RX_Fxn; //对应的回调函数。 uartParams.writeDataMode = UART_DATA_BINARY; uartParams.readDataMode = UART_DATA_BINARY; uartParams.readReturnMode = UART_RETURN_NEWLINE; //uartParams.readEcho = UART_ECHO_OFF; uartParams.readEcho = UART_ECHO_ON; uartParams.baudRate = 9600; uart = UART_open(Board_UART, &uartParams);
但其中。那个UART_RETURN_NEWLINE没用处啊。。不是说来了一个新数据。就可以进入一次callback吗??我发现还是在buf满的时候才可以进入callback。
还有echo的意思是不是把接收到的重新发送回去??我发现没用额。
希望大神可以解决下上面的几个问题