这两天调串口快要哭了。。。
大神帮我解决一下。
话说5天前,我要写一个扫描雷达的串口发送程序
于是我开了两个串口,USART1接雷达,USART2接电脑串口住手
雷达文档说,得到雷达是否正常运行的请求报文 A5,52,也就是说我发A5,52给雷达,我就可以收到所要的数据
于是我就写代码了
核心代码如下
for(j=0;j<=5;)
{
if(USART_GetFlagStatus(USART1,USART_IT_RXNE)==SET)
{
i[j++] = USART_ReceiveData(USART1);
}
for(j=0;j<=6;j++)
{
printf("%x ",i[j]);
}
然后也成功了,我在串口住手上得到了要的数据,可是正常数据前面有有好多用不到的数据。
雷达回给我的报文是以0xA5打头的,回7个数据,前面的乱七八糟的数据要去除,于是我改代码如下:
for(j=0;j<=5;)
{
if(USART_GetFlagStatus(USART1,USART_IT_RXNE)==SET)
{
i[j] = USART_ReceiveData(USART1);
if(i[0]== 165)
j++;
}
}
for(j=0;j<=6;j++)
{
printf("%x ",i[j]);
}
我就让程序不停的接数据,直到接到0xA5开始正式接受其余数据,在我暗自庆幸自己的代码很精简的时候,串口不能发了!!
我怎么都调试不出来!都快哭了! 貌似是卡在第一个循环里,j一直是0,只是貌似是这样,我没有在线调试的东西,不知道问题出在那里,求助大神,我新人一枚,求大神关照!
大神帮我解决一下。
话说5天前,我要写一个扫描雷达的串口发送程序
于是我开了两个串口,USART1接雷达,USART2接电脑串口住手
雷达文档说,得到雷达是否正常运行的请求报文 A5,52,也就是说我发A5,52给雷达,我就可以收到所要的数据
于是我就写代码了
核心代码如下
for(j=0;j<=5;)
{
if(USART_GetFlagStatus(USART1,USART_IT_RXNE)==SET)
{
i[j++] = USART_ReceiveData(USART1);
}
for(j=0;j<=6;j++)
{
printf("%x ",i[j]);
}
然后也成功了,我在串口住手上得到了要的数据,可是正常数据前面有有好多用不到的数据。
雷达回给我的报文是以0xA5打头的,回7个数据,前面的乱七八糟的数据要去除,于是我改代码如下:
for(j=0;j<=5;)
{
if(USART_GetFlagStatus(USART1,USART_IT_RXNE)==SET)
{
i[j] = USART_ReceiveData(USART1);
if(i[0]== 165)
j++;
}
}
for(j=0;j<=6;j++)
{
printf("%x ",i[j]);
}
我就让程序不停的接数据,直到接到0xA5开始正式接受其余数据,在我暗自庆幸自己的代码很精简的时候,串口不能发了!!
我怎么都调试不出来!都快哭了! 貌似是卡在第一个循环里,j一直是0,只是貌似是这样,我没有在线调试的东西,不知道问题出在那里,求助大神,我新人一枚,求大神关照!