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功能框图

推荐阅读最新更新时间:2024-11-07 21:49

按键控制LED/暗的程序
一个按键控制LED亮/暗的汇编程序。开机,第一次按下第一个开关时,8个LED灯亮,第二次按下第一个开关时,8个LED灯暗,再按开关时8个LED灯就再亮,再次按下时8个LED灯再暗。按一次亮一下,再按一次暗一下。程序编好后,开始编译,发现又是通不过,找了好几遍也没找到原因,后来找枫雪大哥看了,才找出原因,原来编写程序时不能在中文环境下编写,不然就会编译时出错。现在搞好了,发上来给大家看看。此程序在仿真软件PROTEUS及EDN51实验板上均通过。 程序如下: ORG 0000H ;地址0000 LJMP STAR ;转STAR ORG 0100H ;地址0100 STAR: MOV P2,#0FH ;#0FH---P2 MOV
[单片机]
STM32F030 定时
TIM3介绍 TIM3主功能 功能介绍 定时器基本单元(功能图) 计数器模式 向上计数模式 计数器从0递增到auto-reload value,然后复位到0重新递增, 同时产生一个overflow event。 向下计数模式 计数器从auto-reload value递减到0,然后复位到auto-reload value重新递减, 同时产生一个underflow event。 中心对齐模式 计数器从0递增到auto-reload value-1,此时产生一个overflow event; 然后从auto-reload value递减到1,此时产生一个underflow event;
[单片机]
<font color='red'>STM32F030</font> <font color='red'>定时</font>器
STM32F030 Nucleo-多样的SPI通信之Master标准模式-SPIFlash读写
我个人认为,学习单片机,在硬件上和驱动上,我们无非学习这么几个东西: 1.能灵活的操作GPIO端口 2.理解单片机各个引脚的功能和作用和外围最小系统的设计 3.各种通信协议比如:并口协议(LCD1602等),UART/USART协议,IIC协议,485通信协议,SPI通信协议,IIS音频流传输协议,CAN通信协议,单总线通信协议(DS18B20等),三总线协议(DS1302等)等等通信协议。 4.ADC/DAC 模数/数模转换 5.单片机内部提供的一些运输协议或者特殊功能,比如DMA,RTC,定时器Timer等,这些功能的操作有单片机本身确定,经过协议相同目标相同,但是操作等可能各家单片机不尽相同;咱只需要理解它完成的是什么功能/
[单片机]
<font color='red'>STM32F030</font> Nucleo-多样的SPI通信之Master标准模式-SPIFlash读写
STM32F030 Nucleo-做个准确的延时SysTick
写过单片机程序的人都知道,软件延时是不准确的,当然,当在我们可接受的情况下,很多地方还是用软件延时的!但是在情况允许的条件下,我们还是希望延时越准确越好,这样可以保证我们Demo的一些精度或者时候准确性。 在所以的ST32位MCU中,基本上都存在这么一个定时器,很多人都叫它“滴答定时器”,也就是SysTick,在我移植过的好几个实时操作系统中,这个滴答定时器都用来作为操作系统调度的定时器了。其实这个定时器的使用非常简单,但是基本上很多人又觉得它是神秘的!为毛呢??打开MCU的DadaSheet,参考手册,都很少提到SysTick,并且提到的地方也就是一句话带过,库手册也就是说明一下操作它的接口!然后!然后!然后就没有然后了。 那么
[单片机]
<font color='red'>STM32F030</font> Nucleo-做个准确的延时SysTick
STM32定时控制led
SysTick—系统定时器是属于 CM3 内核中的一个外设,内嵌在 NVIC 中。系统定时器是一个 24bit 的向下递减的计数器,计数器每计数一次的时间为 1/SYSCLK,一般我们设置 系统时钟 SYSCLK 等于 72M。当重装载数值寄存器的值递减到 0 的时候,系统定时器就产 生一次中断,以此循环往复。 在使用时,只需要配置前三个寄存器,最后一个校准寄存器不需要使用。 接下来,利用 SysTick 产生 1s 的时基,LED 以 1s 的频率闪烁。 1、设置重装载寄存器的值 2、清除当前数值寄存器的值 3、配置控制与状态寄存器 配置头文件: void PendSV_Handler(void) { }
[单片机]
控制器驱动压电蜂鸣器的改进
本文主要针对如何用一只微控制器以大交流电压驱动一个压电蜂鸣器,它使用了一个四MOSFET的电路,与微控制器的两个I/O引脚连接(参考文献1)。以下是本文对这个电路的修改扩充,能节省下一只微控制器的I/O引脚。Q4的栅极连接到Q2的漏极,而不是第二个I/O引脚(图)。微处理器在I/O引脚施加一个高逻辑电平,使Q2导通,将Node A拉至低逻辑电平。这个动作打开Q3,关闭Q4。Node B上的电压变为15V,Q1关闭。压电元件上的电压现在为15V。 一只微控制器I/O引脚驱动这个电路,在压电蜂鸣器两端产生一个交流电压 然后,微控制器将I/O引脚切换为低,Q2关闭。Q1也关闭,因此Node A通过上拉电阻R1,缓慢地升至高逻辑电
[单片机]
微<font color='red'>控制</font>器驱动压电<font color='red'>蜂鸣器</font>的改进
5.1、按键SW1控制LED1
从图中可以看出,P1_2引脚可以感知SW1的状态,SW1未按下P1_2=1高电平,按下后P1_2=0接地。 注意:P1_2引脚只是感知SW1,不影响SW1。 #include ioCC2530.h //引用CC2530头文件 /************************************************************** 函数名称:main 功 能:程序主函数 入口参数:无 出口参数:无 返 回 值:无 **************************************************************/ void main(void) { P1SEL &
[单片机]
5.1、按键SW1<font color='red'>控制</font><font color='red'>LED</font>1<font color='red'>亮</font>灭
STM32控制蜂鸣器
main.c具体的代码如下 /*---------------------------------------------------------------------------------- 功能描述:普通延时控制LED2闪烁,间隔250ms,定时器控制蜂鸣器和LED3 硬件平台:STM32F103 开发板 作者 :求是07 固件库 :V3.5 -----------------------------------------------------------------------------------*/ /* Includes ------------------------------------------
[单片机]
STM32<font color='red'>控制</font><font color='red'>蜂鸣器</font>
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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