微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > CC2531使用RS232串口进行接收数据,乱码

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

时间:10-02 整理:3721RD 点击:

节点使用协议栈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读取方式中,将串口的接收大小为两个字节。不知道跟这个有关系么?如果有,那么又如何进行更改。

你是用字符串的方式打印的,最后一个是终止符,你可以一个一个打印看看,单步调试看下具体的值

我单步调试时看过,在接收函数中,字符串指针里的字符串最后一个字符都是个表示乱码的小方框。

应该是与打印没关系的。而是接收的问题。

但是你接收了5个为什么要打印6个呢

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top