[Expérience du système intégré] 5 expériences de surveillance indépendantes

1 Environnement de développement

  • STM32F407ZGT6
  • Wedge uVision 5

2 Contenu de l'expérience

  1. La LED0 est allumée pour indiquer que le système fonctionne. Si le chien de garde effectue une réinitialisation, la LED0 s'éteint (clignote).
  2. Appuyez sur le mode d'interruption externe de KEY1 pour nourrir le chien au lieu du mode de requête.
  3. Avant que le signal de réinitialisation du chien de garde ne soit généré, une alarme sonore et visuelle est déclenchée, c'est-à-dire que la LED1 commence à clignoter environ 1,5 seconde avant la réinitialisation et le buzzer émet un bip par intermittence pour rappeler au chien de se nourrir.
  4. Après avoir appuyé sur KEY1 pour nourrir le chien, tous les messages d'alarme seront immédiatement annulés.
  5. Les longs délais, tels que delay_ms (1000), ou les longs délais déguisés, pour les boucles, etc. ne sont pas autorisés.
  6. Les minuteries ne sont pas autorisées.

3 Code expérimental

[exti.c]

int flag=0;//喂狗标志

//外部中断3服务程序
void EXTI3_IRQHandler(void)
{
    
    
	delay_ms(10);	//消抖
	if(KEY1==0)	 
	{
    
    
		IWDG_Feed();
		BEEP=0;
		LED1=1;
		flag=1;
	}		 
	 EXTI_ClearITPendingBit(EXTI_Line3);  //清除LINE3上的中断标志位  
}

[main.c]

int main(void)
{
    
     
	u16 prer=4;					//分频系数,4*2^prer=64
	u16 rlr=500*5;				//计数重载值
	u16 count=0;				//计数变量
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);	//设置系统中断优先级分组2
	delay_init(168);			//初始化延时函数
	LED_Init();					//初始化LED端口
	KEY_Init();					//初始化按键
	BEEP_Init();				//初始化蜂鸣器
	EXTIX_Init();				//初始化外部中断输入
	delay_ms(200);				//延时200ms 
	IWDG_Init(prer,rlr);		//分频系数为64,重载值为500时,溢出时间为1s
								//此实验设计溢出时间为1*5=5s
	LED0=0;						//先点亮红灯
	
	while(1){
    
    
		count++;
		if(!flag){
    
    				//当没有喂狗
			if(count>=380){
    
    		//程序大约还剩1.5s运行结束
				mywarning();	//喂狗报警提示
			}
		}
		else{
    
    					//当喂狗了
			count=0;			//重新计数
			flag=0;				//清除喂狗标志
		}
		delay_ms(10);			//小延时
	};

}

/*声光报警*/
void mywarning(void){
    
    
	LED1=!LED1;
	BEEP=!BEEP;
	delay_ms(100);
}

4 sujets nécessitant une attention particulière

Après avoir appris la minuterie, elle peut être réalisée par minuterie.

Je suppose que tu aimes

Origine blog.csdn.net/qq_44714521/article/details/108704695
conseillé
Classement