while(1)
{
if(USART_RX_STA&0x8000)
{
len=USART_RX_STA&0x3fff;//得到此次接收到的数据长度
printf("
通过串口助手向MCU发送的数据:
");
for(t=0;t<len;t++)
{
USART_SendData(USART1, USART_RX_BUF[t]);
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
}
printf("
MCU向串口助手发送的接收数据:
");
for(t=0;t<len;t++)
{
USART1->DR=USART_RX_BUF[t];
while((USART1->SR&0X40)==0);//等待发送结束
}
USART_RX_STA=0;
len=0;
printf("
");//插入换行
}
else
/*以下内容是MCU自动循环向串口助手发送的内容*/
{
times++;
if(times%500==0)
{
printf("
");//插入换行
printf(" 以下内容是自动循环向串口助手发送
");//插入换行
printf("串口实验");
printf("
");//插入换行
printf("串口实验
");
}
delay_ms(10);
}
}
如上 代码。通过以上代码可以与串口助手 "XCOM V2.0" 相互通信。(串口助手向STM32发送数据,STM32收到数据后向串口助手发送接收到的数据。 在串口助手没有发送数据的时候STM32自动向串口助手发送数据)如图:
同样的程序,同样的MCU,同样的。。。。。 什么都同样的,只是换了一个串口助手,用“串口调试小助手1.3”却结果不一样。 如图:
串口助手没有接收到STM32向助手返回的接收到的数据,但助手提示 已经发送成功。 Tx:5. 请问这是怎么回事, 串口助手问题?
(用虚拟串口 增加了两个COM2 与COM4 以上两个助手之间通信是没有问题的)
(长远目的是想用这个程序与我LABVIEW弄的串口助手相互通信, 目前这个程序与自建的labview助手通信不通, 但用虚拟串口COM2 与COM4, 自建的LAVBIEW助手与以上两个助手通信都是正常的,所以特别迷茫)
如果哪位兄弟可以指点一二,小弟可加微信有偿酬谢,谢谢。
一周热门 更多>