This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC2531使用RS232串口进行接收数据,乱码

Other Parts Discussed in Thread: Z-STACK

节点使用协议栈Z-Stack 2.5,串口使用DMA的方式进行读写。

使用串口向外写没有问题,但是接收之后,总有乱码。而且每次的乱码还不一样。让楼主很是困惑。

以下是接收代码


// 这表示event事件不为空

if(event&(HAL_UART_RX_FULL|HAL_UART_RX_ABOUT_FULL|HAL_UART_RX_TIMEOUT))
{
// 读取出RX_Buffer中的数据

uint8 len = Hal_UART_RxBufLen(HAL_UART_PORT_0);
vPrintf("\r\n #%d#",len);
uint8 *pBuffer = ( uint8* )osal_mem_alloc(len*sizeof(uint8));

///////////////////////TODO//////////////////////////////////
uint8 rxLen = HalUARTRead(HAL_UART_PORT_0,pBuffer,len);

vPrintf("\r\n %s",pBuffer);
osal_mem_free(pBuffer);
}


使用串口调试助手发送ABCDE

下图是节点将接收到的数据通过串口打印出来的。


其中#5#是我将接收到的数据打印出来的。无论我发送什么数据,大部分情况下在数据的末尾都会出现一个乱码

我看串口的DMA读取方式中,将串口的接收大小为两个字节。不知道跟这个有关系么?如果有,那么又如何进行更改。