历史上的今天
今天是:2024年09月11日(星期三)
2018年09月11日 | STM32F030控制蜂鸣器定时响和控制LED亮
2018-09-11 来源:eefocus
一: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
史海拾趣
|
内容简介 本书通过100个实例,详细介绍硬件描述语言VHDL的各种语法现象及其在专用集成电路(ASIC)设计描述中的使用方法。书后附有光盘,其中包括北京理工大学ASIC研究所自行研制的有自主版权的Talent高层次自动设计 ...… 查看全部问答> |
|
1.概述 1.1解析ZigBee堆栈架构 ZigBee堆栈是在IEEE 802.15.4标准基础上建立的,定义了协议的MAC和PHY层。ZigBee设备应该包括IEEE802.15.4(该标准定义了RF射频以及与相邻设备之间的通信)的PHY和MAC层,以及ZigBee堆栈层:网络层(NWK)、应用层和安 ...… 查看全部问答> |
|
本帖最后由 paulhyde 于 2014-9-15 09:19 编辑 刚开始进行课程设计的时候,我表现出了极大的热情。上网查资料、询问高年级同学的经验,我时刻猜测着我会从中获得什么,这是一个难得的锻炼机会。 然而,事情并没有我预期的那么顺利。我刚开始 ...… 查看全部问答> |
|
我想参加嵌入式LINUX+ARM的相关培训.目前,国内有华清远见,尚观,亚嵌,港湾等嵌入式培训品牌,我不知道哪一个能够真正学到东西.他们各自优势是什么.请业内人士和参加过相关培训的人指点一下.万分感谢!祝福你们!… 查看全部问答> |
|
WINCE中直接运行一个EXE。会有个框显示的过程。怎么解决? 我现在在调试一个问题,就是开机进入WINCE,然后在WINCE里面直接运行最基本的空工程的EXE 这个EXE起来的时候会有框出来的过程。,请达人指点下。。… 查看全部问答> |
|
TI MSP430 TimerA的输出从P1.0输出,TimerB的输出从P1.1输出.怎么设定? TI MSP430问题: 我想把TimerA的输出从P1.0输出,TimerB的输出从P1.1输出. 可是430怎么才知道是TimerA 给P1.0 而不是P1.1呢? P1SEL设了1,然后呢? P1DIR = ...… 查看全部问答> |
|
请问下 用到EDB数据库编程时 在“VS2005|项目|属性|属性配置|C/C++|预处理器”是怎样设置的。 我的做法是在后面加了“EDB”,但出现好多错误: error C2065: \'CEPROPSPEC\' : undeclared identifier ……… 查看全部问答> |




