TI中文支持网
TI专业的中文技术问题搜集分享网站

串口DMA通信,使用HalUARTWrite();打印,发现数据被改变。

下面是部分代码

uint8 Nwk_Status[10]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};

if((ReportCnt<=1)&&(NwkStatus_Rsp==0))
{
ReportCnt++;
if(NwkStatus_Flag ==1)
{
func_Send_SerialData(Nwk_Status,0x84); 
}
osal_start_timerEx( zclSampleDoorLock_TaskID, SAMPLEDOORLOCK_REPORT_NWKSTATUS_EVT, 800);//
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

void func_Send_SerialData(uint8 *Data,uint8 Cmd_Num)//
{
uint8 SendSerData[22];//
uint8 i;
NumAdd++;
SendSerData[0]=0xAA; SendSerData[1]=0x0A; SendSerData[2]=Cmd_Num; SendSerData[3]=BREAK_UINT32(NumAdd,3);
SendSerData[4]=BREAK_UINT32(NumAdd,2); SendSerData[5]=BREAK_UINT32(NumAdd,1); SendSerData[6]=BREAK_UINT32(NumAdd,0);
SendSerData[7]=0x00;   SendSerData[8]=Data[0];   SendSerData[9]=Data[1];   SendSerData[10]=Data[2];
SendSerData[11]=Data[3];   SendSerData[12]=Data[4];   SendSerData[13]=Data[5];   SendSerData[14]=Data[6];
SendSerData[15]=Data[7];   SendSerData[16]=Data[8];   SendSerData[17]=Data[9];
SendSerData[18]=0x00;
for(i=0;i<18;i++) {
SendSerData[18]^=SendSerData[i];
}
SendSerData[19]=0x55;
HalUARTWrite(1,SendSerData,20);
}

/////////////////////////////////////////////////////////////////////////////////////

使用0x84的时候,发现传输外串口外就变成了0x60.其他数据都没变。

但是debug的时候,每次看到的数据却又是0x84正确的。

串口使用的引脚TXD(P1.7),RXD(P1.6)

 

Viki Shi:

初步怀疑是时序问题,即debug是好的,运行起来就出现问题,这两者的差异就是时间延时不同

user5773329:

回复 Viki Shi:

那怎么解决,我debug也是好的,但就是数据显示不了。HalUARTWrite()都执行了的但就是串口显示不了数据

赞(0)
未经允许不得转载:TI中文支持网 » 串口DMA通信,使用HalUARTWrite();打印,发现数据被改变。
分享到: 更多 (0)