stm32代码烧录问题

img


代码烧录不进去,之前跟着江协的视频能烧录前面的代码,后面不知道为什么就烧录不了了,但别人的电脑能烧录,就自己不行

【相关推荐】



  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7435689
  • 这篇博客也不错, 你可以看下STM32系列代码引脚输出上拉,测得输出电压太小,甚至只有0,输出电压太小,解决办法
  • 您还可以看一下 朱有鹏老师的STM32标准库的引入视频课程-第3季第6部分课程中的 3.6.1.为什么会有标准外设库小节, 巩固相关知识点
  • 除此之外, 这篇博客: STM32输入捕获测试频率和正负脉宽中的 文件一:采用检测两次高电平之间的周期宽度计算后就是频率。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:

    相关的中断处理程序

    //定时器5中断服务程序	 
    void TIM5_IRQHandler(void)
    { 
     	if((TIM5CH1_CAPTURE_STA&0X80)==0)//还未成功捕获	
    	{	  
    		if (TIM_GetITStatus(TIM5, TIM_IT_Update) != RESET)	 
    		{	    
    			if(TIM5CH1_CAPTURE_STA&0X40)//已经捕获到高电平了
    			{
    				if((TIM5CH1_CAPTURE_STA&0X3F)==0X3F)//高电平太长了
    				{
    					TIM5CH1_CAPTURE_STA|=0X80;//标记成功捕获了一次
    					TIM5CH1_CAPTURE_VAL=0XFFFF;
    				}else TIM5CH1_CAPTURE_STA++;
    			}	 
    		}
    	if (TIM_GetITStatus(TIM5, TIM_IT_CC1) != RESET)//捕获1发生捕获事件
    		{	
    			if(TIM5CH1_CAPTURE_STA&0X40)		//捕获到一个下降沿 		
    			{	  
    				TIM_SetCounter(TIM5,0);	
    				TIM5CH1_CAPTURE_VAL=0;	
    				TIM5CH1_CAPTURE_STA=0;			//清空				
    				TIM5CH1_CAPTURE_STA|=0X80;		//标记成功捕获到一次高电平脉宽
    				TIM5CH1_CAPTURE_STA&=!0X40;//标记捕获到了下降沿
    		   	TIM_OC1PolarityConfig(TIM5,TIM_ICPolarity_Rising); //CC1P=0 设置为上升沿捕获
    			}
    			else  								//还未开始,第一次捕获上升沿
    			{
    				time_l=TIM5CH1_CAPTURE_STA&0X3F;
    				time_l *= 65536;
    				time_l += (2);
    				TIM5CH1_CAPTURE_VAL=TIM_GetCapture1(TIM5);
    				time_l += TIM5CH1_CAPTURE_VAL;
    				TIM5CH1_CAPTURE_STA|=0X40;		//标记捕获到了上升沿
    		   	TIM_OC1PolarityConfig(TIM5,TIM_ICPolarity_Rising);		//CC1P=1 设置为下降沿捕获
    			}		    
    		}			     	    					   
     	}
     
        TIM_ClearITPendingBit(TIM5, TIM_IT_CC1|TIM_IT_Update); //清除中断标志位
     
    }
    
    

    这个只检测频率,精度还阔以,但是理论精度大约在25HZ–250KHZ,实际测试精度在 28HZ–80KHZ,剩下的还没实现,可以通过设置计数的频率来提高精度,本实验是1us测试一次,因此1US以下的就拜拜了
    优点:占空比无论咋样都可以测出来,高点的频率适合(几千几十千赫兹那种)


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^