zoukankan      html  css  js  c++  java
  • STM32F4 串口实验中收不到超级终端发送的数据,调试工具却可以

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

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

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

    while(1)
    	{
    		if(USART_RX_STA&0x8000)
    		{					   
    			len=USART_RX_STA&0x3fff;//µÃµ½´Ë´Î½ÓÊÕµ½µÄÊý¾Ý³¤¶È
    			printf("
    Äú·¢Ë͵ÄÏûϢΪ:
    ");
    			for(t=0;t<len;t++)
    			{
    				USART_SendData(USART1, USART_RX_BUF[t]);         //Ïò´®¿Ú1·¢ËÍÊý¾Ý
    				while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//µÈ´ý·¢ËͽáÊø
    			}
    			printf("
    
    ");//²åÈë»»ÐÐ
    			USART_RX_STA=0;
    		}else
    		{
    			times++;
    			if(times%5000==0)
    			{
    				printf("
    ALIENTEK ̽Ë÷ÕßSTM32F407¿ª·¢°å ´®¿ÚʵÑé
    ");
    				printf("ÕýµãÔ­×Ó@ALIENTEK
    
    
    ");
    			}
    			if(times%200==0)printf("ÇëÊäÈëÊý¾Ý,ÒԻسµ¼ü½áÊø
    ");  
    			if(times%30==0)LED0=!LED0;//ÉÁ˸LED,ÌáʾϵͳÕýÔÚÔËÐÐ.
    			delay_ms(10);   
    		}
    	}


    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    Luogu-1381 单词背诵
    Luogu-3413 SAC#1
    HBase版本进化史及大版本特性
    scala解析json —— json4s 解析json方法汇总
    sparkSQL获取DataFrame的几种方式
    scala调用系统-scala.sys.process使用
    spark textFile读取多个文件
    CentOS 7 配置SFTP
    spark优化——依赖包传入HDFS_spark.yarn.jar和spark.yarn.archive的使用
    mysqldump备份和恢复
  • 原文地址:https://www.cnblogs.com/mao0504/p/4749753.html
Copyright © 2011-2022 走看看