cheerme 发表于 2015-7-26 21:14:19

在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程序不能添加吗???求大神指点一下,谢谢!!!

tom739 发表于 2017-7-5 09:04:28

站等大虾们的回复!:lol

tom739 发表于 2017-7-5 16:08:12

关键是要在source.mak中修改一下配置:
# Set transport make variable
ifneq (,$(findstring -DANALOGUE_INPUT_DEVICE,$(DEFS)))
TRANSPORT=raw
else
TRANSPORT=usb_vm
endif

最后,要是不用流控制的话,在PSKEY中把&01c2这项设置为08a0。

hangkzhou 发表于 2017-10-8 16:47:34

高手在民间啊啊啊啊啊啊啊

levalmok 发表于 2020-2-18 19:34:09

非常感谢tom739, 我也解决了问题!
页: [1]
查看完整版本: 在ADK2.5.1的Souce源码中添加串口程序,SourceUartSiink()函数返回0.