STM32F030控制蜂鸣器定时响和控制LED亮

发布者:橙子1234最新更新时间:2019-05-23 来源: eefocus关键字:STM32F030  控制蜂鸣器  定时响  控制LED亮 手机看文章 扫描二维码
随时随地手机看文章

一:STM32F030控制蜂鸣器定时响


(1)main.c中:

u16  StartTime=0;

void main()

{

StartTime=500;//蜂鸣器响的时长

SPEEK(1);    

}

 

void SPEEK(u8 num)

{

  TIM_Cmd(TIM2, ENABLE); //开启时钟

}

(2)hardware_conf.h中:

#define  Speak(tmp)  GPIOB->ODR=tmp?(GPIOB->ODR|1<<8):(GPIOB->ODR&(~(1<<8)))

(3)stm32f10x_it.c中:

extern void SPEEK(u8 num);

 

void SysTick_Handler(void)  

if(StartTime>0)

  {

    StartTime--;

    if(StartTime==0)

    {

      Speak(1);

      TIM_Cmd(TIM2, DISABLE); //ژҕ

    }

  }

 

}

二:STM32F030控制LED亮


(1)main.c中:


void Leddisp(u8 tempvalue,u8 state)

{

  u8 sendnumber;

  if(displaying==0)

  {

    displaying=1;

    switch(tempvalue)

    {

    case HEAT_TEMP60:   LED_Buff[2]=state?0xDF:0x1f;break;

    case HEAT_TEMP70:   LED_Buff[3]=state?0xDF:0x1f;break;

    case HEAT_TEMP80:   LED_Buff[0]=state?0xDF:0x1f;break;

    case HEAT_TEMP90:   LED_Buff[5]=state?0xDF:0x1f;break;

    case HEAT_TEMP100:  LED_Buff[4]=state?0xDF:0x1f;break;

    case WARM_KEY:      LED_Buff[1]=state?0xDF:0x1f;break;

    case WIFI_KEY:      LED_Buff[6]=state?0xDF:0x1f;break;

    case All_LIGHT_ON:  memset(LED_Buff,0xDF,8);break;

    case ALL_LIGHT_OFF: memset(LED_Buff,0x1f,8);break;

    case SIX_LIGHT_ON:  memset(LED_Buff,0xDF,6);break;

    case SIX_LIGHT_OFF: memset(LED_Buff,0x1F,6);break;

    default: break;

    }   

    EXTI->IMR &= ~EXTI_Line0;

    EXTI->EMR &= ~EXTI_Line0;

    delay(20);//需要改小  2016-3-10

    while(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0)==1);  

    sendnumber=20;

    while(I2C1_Write_NBytes(IQS333_ADDR, PWM_DUTY, 8, &LED_Buff[0])!=0)

    {

      I2C_StopModeCmd(I2C1,ENABLE);

      //I2C_GenerateSTOP(I2C1,ENABLE);

      sendnumber--;

      if(sendnumber==0)

        break;

    }

    EXTI->IMR |= EXTI_Line0;

    EXTI->EMR |= EXTI_Line0;

    displaying=0;

  }

  else

  {

    sendnumber=0;

  }

}

 

 

void delay(u16 num)

{

  u16 i,j;

  for(i=0;i    for(j=0;j<0x800;j++);

}

 

 

void main()

{

Leddisp(HEAT_TEMP100,1);//按钮HEAT_TEMP100灯亮

delay(600);

    Leddisp(HEAT_TEMP100,0);//灭

}

u8  LED_Buff[8]={

    0x1f,

    0x1f,

    0x1f,

    0x1f,

    0x1f,

    0x1f,

    0x1f,

    0x1f,};



(2)hardware_conf.h中:

#define WARM_KEY      1

#define WIFI_KEY      2

#define All_LIGHT_ON  3

#define ALL_LIGHT_OFF 4

#define SIX_LIGHT_ON  5

#define SIX_LIGHT_OFF 6

#define HEAT_TEMP60   60

#define HEAT_TEMP70   70

#define HEAT_TEMP80   80

#define HEAT_TEMP90   90

#define HEAT_TEMP100  100



关键字:STM32F030  控制蜂鸣器  定时响  控制LED亮 引用地址:STM32F030控制蜂鸣器定时响和控制LED亮

上一篇:STM32中I2C总线上数据的读、写。
下一篇:STM32F103VET6——ADC功能框图

小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved