STM32F4 串口实验中收不到超级终端发送的数据,调试工具却可以

  我用串口精灵发送数据没有问题,但是接收数据没反应。

串口接受的时候必须要用中断的,你发送只靠单一的标志位是可以判断的,但是接受的时候,你是一直停留在while里面,我们判断接受是否完成,通过检测是否收到0x0D、0x0A的连续来检测是否结束。当检测到这个结束序列后,就会置位USART_RX_STA的最高位来标记已经会搜到一次数据。之后等待外部函数清空才可以第二次接受。

修改:超级终端发送设置,以换行作为发送末尾,OK

while(1)
	{
		if(USART_RX_STA&0x8000)
		{					   
			len=USART_RX_STA&0x3fff;//µÃµ½´Ë´Î½ÓÊÕµ½µÄÊý¾Ý³¤¶È
			printf("\r\nÄú·¢Ë͵ÄÏûϢΪ:\r\n");
			for(t=0;t


你可能感兴趣的:(STM32F4 串口实验中收不到超级终端发送的数据,调试工具却可以)