ARM串口信息读取,该如何解决
ARM串口信息读取
串口通讯正常,可以和电脑收发信息。
我想和电脑互动,电脑给我发送一个字符“OK”,我打印一个“你好”,但是当我加入判断语句以后,不管我输入什么,ARM都会给我返回“你好”!
程序如下:
if(USART_GetFlagStatus(USART1 , USART_IT_RXNE) == SET)
{
s3[0]=SART_ReceiveData(USART1);
/* 向串口发送接收到的数据 */
USART_SendData(USART1 , USART_ReceiveData(USART1));
/* 短延时,保证收发稳定性 */
for(i = 0; i < 500; i ++);
if(s3[0]==0x4F) /*用于存储收到的数据*/
USART_Printf(USART1,"\r\n 本次测试成功!\r\n ");
}
/* 等待USART2接收数据完毕 */
if(USART_GetFlagStatus(USART2 , USART_IT_RXNE) == SET)
{
/* 向串口发送接收到的数据 */
USART_SendData(USART2 , USART_ReceiveData(USART2));
/* 短延时,保证收发稳定性 */
for(i = 0; i < 500; i ++);
}
}
------解决方案--------------------
那就是你判断错了
------解决方案--------------------
先把接收到的字符串打印出来吧(调试也行),很有可能是接收到的字符串没有结束符之类的导致判断错误
------解决方案--------------------
if判断语句要注意, 不要把 == 写成 = 不然判断没有意思,总是会是一个判断结果
串口通讯正常,可以和电脑收发信息。
我想和电脑互动,电脑给我发送一个字符“OK”,我打印一个“你好”,但是当我加入判断语句以后,不管我输入什么,ARM都会给我返回“你好”!
程序如下:
if(USART_GetFlagStatus(USART1 , USART_IT_RXNE) == SET)
{
s3[0]=SART_ReceiveData(USART1);
/* 向串口发送接收到的数据 */
USART_SendData(USART1 , USART_ReceiveData(USART1));
/* 短延时,保证收发稳定性 */
for(i = 0; i < 500; i ++);
if(s3[0]==0x4F) /*用于存储收到的数据*/
USART_Printf(USART1,"\r\n 本次测试成功!\r\n ");
}
/* 等待USART2接收数据完毕 */
if(USART_GetFlagStatus(USART2 , USART_IT_RXNE) == SET)
{
/* 向串口发送接收到的数据 */
USART_SendData(USART2 , USART_ReceiveData(USART2));
/* 短延时,保证收发稳定性 */
for(i = 0; i < 500; i ++);
}
}
------解决方案--------------------
那就是你判断错了
------解决方案--------------------
先把接收到的字符串打印出来吧(调试也行),很有可能是接收到的字符串没有结束符之类的导致判断错误
------解决方案--------------------
if判断语句要注意, 不要把 == 写成 = 不然判断没有意思,总是会是一个判断结果