在ADK2.5.1的Souce源码中添加串口程序,SourceUartSiink()函数返回0.
我是用的是ADK2.5.1,硬件是BC57E687C,我在source工程的基础上添加串口程序,在主函数中添加初始化函数uart_data_stream_init();。int main(void)
{
/* turn off charger LED indications */
ChargerConfigure(CHARGER_SUPPRESS_LED0, TRUE);
/* initialise state machine */
states_set_state(SOURCE_STATE_INITIALISING);
uart_data_stream_init();//串口初始化函数
MessageLoop();
return 0;
}
最后卡在初始化函数中的StreamUartSink()
void uart_data_stream_init(void)
{
/* Assign task message handler */
theUARTStreamTask.task.handler = UARTStreamMessageHandler;
/* Configure uart settings */
StreamUartConfigure(VM_UART_RATE_38K4, VM_UART_STOP_ONE, VM_UART_PARITY_NONE);
/* Get the sink for the uart */
theUARTStreamTask.uart_sink = StreamUartSink(); //就是该函数返回值一直为0
PanicNull(theUARTStreamTask.uart_sink); //所以这里提示错误。
/* Get the source for the uart */
theUARTStreamTask.uart_source = StreamUartSource();
PanicNull(theUARTStreamTask.uart_source);
/* Register uart source with task */
MessageSinkTask(StreamSinkFromSource(theUARTStreamTask.uart_source), &theUARTStreamTask.task);
}
另外,编译的时候没有错误,就是DEBUG运行时卡在那。我在SINK程序的基础上添加了这个串口程序,可以正常使用。难道source程序不能添加吗???求大神指点一下,谢谢!!!
站等大虾们的回复!:lol
关键是要在source.mak中修改一下配置:
# Set transport make variable
ifneq (,$(findstring -DANALOGUE_INPUT_DEVICE,$(DEFS)))
TRANSPORT=raw
else
TRANSPORT=usb_vm
endif
最后,要是不用流控制的话,在PSKEY中把&01c2这项设置为08a0。
高手在民间啊啊啊啊啊啊啊 非常感谢tom739, 我也解决了问题!
页:
[1]