我用STM32F107VCT6写程序。
用观察窗口看到的数据如下:
可是发出来却变了。
我程序如下:
void SendEight(void)
{
u16 i,j;
GPRS[0]=0X7E;
GPRS[2]=0X00;
GPRS[3]=0X12;
GPRS[4]=(PM25q>>8);
GPRS[5]=(PM25q&0XFF);
GPRS[6]=(PM10q>>8);
GPRS[7]=(PM10q&0XFF);
GPRS[8]=(PM100>>8);
GPRS[9]=(PM100&0XFF);
GPRS[10]=(Temperature>>8);
GPRS[11]=(Temperature&0XFF);
GPRS[12]=(Humidity>>8);
GPRS[13]=(Humidity&0XFF);
GPRS[14]=(WindSpeed>>8);
GPRS[15]=(WindSpeed&0XFF);
GPRS[16]=(WindDirectionDang>>8);
GPRS[17]=(WindDirectionDang&0XFF);
GPRS[18]=(WindDirection360>>8);
GPRS[19]=(WindDirection360&0xff);
GPRS[20]=(Sound>>8);
GPRS[21]=(Sound&0xff);
check_sum=0;
for(i=1;i<22;i++)
check_sum+=GPRS
;
GPRS[22]=check_sum;
GPRS[23]=0x7f;
GPRS1[0]=0x7e;
j=1;i=1;
while(GPRS[j]!=0x7f) //×aòå
{
if(GPRS[j]==0x7d)
{
GPRS1[i++]=0x7d;
GPRS1[i++]=0x01;
}
else if(GPRS[j]==0x7e)
{
GPRS1[i++]=0x7d;
GPRS1[i++]=0x02;
}
else
GPRS1[i++]=GPRS[j];
j++;
}
GPRS1[i++]=0x7f;
//Uart1_SendString(GPRS1,i);
for(j=0;j<i;j++)
USART1_Send_Byte(GPRS1[j]);
delay_ms(20);
}
请高手给看看,哪里有问题,谢谢!
此帖出自小平头技术问答
USART1_Send_Byte(GPRS1[j]);
delay_ms(20);
}
每发一个都要延时或者判完
一周热门 更多>