csr8670 uart
CSR8670使用sink工程,在注册uart任务之后,收取uart过来的数据,有什么办法可以使我的uart每接收一个字节就触发一次事件啊。现在uart触发一次可以读到好多字节数据,我波特率设置为312500Hz。这是我初始化的代码void uart_data_stream_init(void)
{
/* Assign task message handler */
theUARTStreamTask.task.handler = UARTStreamMessageHandler;
/* Configure uart settings */
StreamUartConfigure(VM_UART_RATE_31K25, VM_UART_STOP_ONE, VM_UART_PARITY_NONE);
/* Get the sink for the uart */
theUARTStreamTask.uart_sink = StreamUartSink();
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);
}
初始化在main函数里调用。
void UARTStreamMessageHandler (Task pTask, MessageId pId, Message pMessage)
{
switch (pId)
{
case MESSAGE_MORE_DATA:
uart_data_stream_rx_data(((MessageMoreData *)pMessage)->source);
break;
default:
break;
}
}
uart事件触发函数,为什么当串口有比较多数据过来时,会很长时间才触发一次这个函数。这样我发送端和蓝牙接收之间会有一个比较长的时间差,有大神帮我解答一下吗:D
而且串口接收经常发现,例如我发送多个字节的数据,经常出现触发两次uart事件,第一次接收一个字节,第二次接收剩下的字节。
关于这个uart事件在工程里还有哪里可以进行一些配置修改吗?
你是怎么发送数据的?
:):):):):):):):):)
页:
[1]