以前一直用的是printf来看串口的数据,感觉非常方便。但是要发16进制数据的话printf就不是很好用了。所以用的USART_SendData来实现 结果碰到的问题让我很难受 ,请大家帮我看看。在此真的很感谢!!!
我从淘宝买了一个多功能红外模块,只要我通过串口发送相应的代码,该模块可以实现相应的动作。大家放心,这个模块给了PC测试,完全没有问题。
函数里我先定义了一个数组a和b来存放数据。一个数组代表一个数据包。下面是程序
for(i=0;i<5;i++)
{
USART_SendData(USART1,e);
while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);
}
Delay(0xffffee);
for(i=0;i<5;i++)
{
USART_SendData(USART1,g);
while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);
}
现在的结果就是,串口调试助手显示正确,但模块不接收。如果我通过串口调试助手来发送命令,则可以成功控制模块。所以想请教大家这是为什么啊。 |