|
STM32声光报警器有仿真图和程序
仿真无反应
- #include "led.h"
- #include "beep.h"
- #include "exti.h"
- #include "delay.h"
- int main(void)
- {
- Stm32_Clock_Init(9);//系统时钟设置 72Mhz
- delay_init(72);//延时初始化
- LED_Init(); //初始化与LED连接的硬件接口
- BEEP_Init();//喇叭初始化
- EXTIX_Init();//中断初始化
- while(1);
- }
复制代码- #include "exti.h"
- #include "led.h"
- #include "beep.h"
- #include "key.h"
- #include "delay.h"
- #include "usart.h"
- //外部中断初始化函数
- void EXTIX_Init(void)
- {
-
- KEY_Init();//初始化按键对应io模式
- Ex_NVIC_Config(GPIO_C,8,FTIR); //下降沿触发
- Ex_NVIC_Config(GPIO_C,9,FTIR); //下降沿触发
- MY_NVIC_Init(2,1,EXTI9_5_IRQn,2); //抢占2,子优先级1,组2 对应PC8,PC9
-
- }
- //外部中断5_9服务中断程序 pc8,pc9
- void EXTI9_5_IRQHandler(void)
- {
- u8 count;
- //delay_ms(10); //消抖
-
- if(KEY0==0) //KEY0按键
- {
- for(count=5;count>0;count--){
- //输出1Khz的音频信号
- BEEP=0;
- LED0=0;
- delay_us(500);
- BEEP=1;
- LED0=1;
- delay_us(500);
- }
-
- for(count=5;count>0;count--){
- //输出500hz的音频信号
- BEEP=0;
- LED0=0;
- delay_ms(1);
- BEEP=1;
- LED0=1;
- delay_ms(1);
- }
- }
- if(KEY1==0) //KEY1按键
- {
- LED0=1;
- BEEP=1;
- }
- EXTI->PR=1<<8; //清除LINE8上的中断标志位
- EXTI->PR=1<<9; //清除LINE9上的中断标志位
- }
复制代码
|
|