关于CSR8670的串口调试
本帖最后由 liqb365 于 2014-9-10 17:35 编辑坛友们好,想问下各位调试过8670串口的前辈高人,一般8670的串口输出,在经过Claim-->Map-->memcpy-->flush的过程之后,如果flush成功了的话,是否在片子的Tx引脚上就会立刻出现相应的RS232信号?在下UART还没调通,目前Tx脚一直是高电平,希望各位不吝赐教,谢谢。
我的开发环境是ADK2.5.1,配置选项中的Transport一直是Raw。
我的发送函数是这样的:
void UartSend(char *buf, uint16 len){ if ((buf == null) || (len == 0)) { printf("Uart Send buf is NULL or len is zero\n"); }
/*sink = StreamSinkFromSource(StreamUartSource());*/ if(sink) { if(SinkClaim(sink, 10) != 0xFFFF) { printf("Buf: %s\n",buf);
printf("size:%d\n",sizeof(uint8));
memcpy(SinkMap(sink), buf, sizeof(uint8)*len); if(SinkFlush(sink, 10)) printf("Flush OK!\n");
else printf("Flush Failed!\n"); }
else { printf("Claim Error\n"); } }
else { printf("Can not send uart\n"); }}
正研究CSR8670的UART,顶 正在研究86xx系列的东西,顶一个 说得非常对,就是这样的。 bluetooth_ble 发表于 2014-9-11 08:33
说得非常对,就是这样的。
前辈,在下这里从claim到flush的返回值一直是正确的,flush每次都成功,Transport选项也一直是Raw,而8670的串口TX脚从示波器上却一直没有信号的输出,是否在下的代码和配置选项上还有没有注意到的地方呢? 发送始终调不出来,我去试一下接收。 顶一下,再仔细研究一下CSR的虚拟机。 liqb365 发表于 2014-9-11 08:46
前辈,在下这里从claim到flush的返回值一直是正确的,flush每次都成功,Transport选项也一直是Raw,而867 ...
你在其他型号的芯片上用这种方式试过吗?我认为应该没有问题,很简单的 bluetooth_ble 发表于 2014-9-12 08:41
你在其他型号的芯片上用这种方式试过吗?我认为应该没有问题,很简单的
是啊,找到了好几个样例代码,都是这几个步骤而已,而且官方文档也翻来覆去的看了,flush返回值提示成功,接收代码也没问题了,就是发送这里输出脚没有信号输出。
我这里只有一个8670的板子,没有尝试过其他的芯片。 本来还以为是8670的Tx脚虚焊了,但是在ADK开始仿真的时候又有电平的起伏(不是RS232),最后稳定到1.8V高电平,每次都是这样,应该不是虚焊了,但是控制台又显示flush没有问题,实在是当了回丈二和尚啊。:dizzy: