串口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)

 

2 个回复