我想在网站上卖食品怎么做,换空间网站备案吗,适合代码新手做的网站,wordpress去除主题加密页脚目录
一、滴答定时器的使用与原理
1、定义
2、原理
#xff08;1#xff09;向上计数编辑
#xff08;2#xff09;向下计数 #xff08;3#xff09; 代码流程
a、配置滴答时钟唤醒频率
b、滴答时钟中断函数
#xff08;4#xff09;结果
3、优化--寄存…目录
一、滴答定时器的使用与原理
1、定义
2、原理
1向上计数编辑
2向下计数 3 代码流程
a、配置滴答时钟唤醒频率
b、滴答时钟中断函数
4结果
3、优化--寄存器协助模式
代码
二、pir传感器的使用
1、介绍
2、接法 3、接线编辑 4、代码
main.c pir.c
pir.h
5、运行结果 一、滴答定时器的使用与原理
1、定义 滴答定时器又称系统定时器。它应用系统时钟拉计算时间因此常用作为计时 工具来使用也可以实现固定时间去做一件简单的事情。
2、原理
1向上计数
2向下计数 3 代码流程 a、配置滴答时钟唤醒频率
SysTick_Config(SystemCoreClock/100);//每0.01s调用中断
b、滴答时钟中断函数
void SysTick_Handler(void)//滴答中断调用
{static uint32_t i0;i;if(i100)//1s{PFout(9)0;PFout(10)1;PFout(12)1; }if(i200){PFout(9)1;PFout(10)0;PFout(12)1; }if(i300){i0;PFout(9)1;PFout(10)1;PFout(12)0; }}
4结果
main函数中写有一个空while循环循环不结束SysTick_Config会一直调用中断函数使得三个灯一直交替闪烁。
3、优化--寄存器协助模式
原理如图 代码
delay.c
#include stm32f4xx.h void delay_ms(uint32_t ms)
{while(ms--){SysTick-CTRL0;//使其工作SysTick-LOAD(SystemCoreClock/1000);//一毫秒SysTick-VAL0;//清空SysTick-CTRL5;//让内部时钟开始干活while((SysTick-CTRL 0x00010000)0);SysTick-CTRL0;}
}
delay.h
#include stm32f4xx.h // Device headervoid delay_ms(uint32_t ms); main.c
#include stm32f4xx.h // Device header
#include led.h
#include key.h
#include BitBand.h
#include delay.h
#include stdio.hint main()
{Led_Init(); while(1){PFout(9)0;PFout(10)1;PFout(12)1; delay_ms(1000);PFout(9)1;PFout(10)0;PFout(12)1; delay_ms(1000);PFout(9)1;PFout(10)1;PFout(12)0; delay_ms(1000);}
}
二、pir传感器的使用
1、介绍 热释电红外线传感器是利用红外线来进行数据处理的一种传感器。主要是由一种高热电系数的材料如锆钛酸铅系陶瓷、钽酸锂、硫酸三甘钛等制成尺寸为2*1mm的探测元件。 人体都有恒定的体温一般在37度所以会发出特定波长10UM左右的红外线被动式红外探头就是靠探测人体发射的10UM左右的红外线而进行工作的。人体发射的10UM左右的红外线通过菲泥尔滤光片增强后聚集到红外感应源上。红外感应源通常采用热释电元件这种元件在接收到人体红外辐射温度发生变化时就会失去电荷平衡向外释放电荷后续电路经检测处理后就能产生报警信号。 2、接法 3、接线 4、代码
main.c
#include stm32f4xx.h // Device header
#include led.h
#include key.h
#include BitBand.h
#include pir.hint main()
{Led_Init();Pir_Init();uint32_t key0;//传感器测试while(1){keyPFin(14);if(key1)//有人{PFout(12)0;}else//否则周边没有人{PFout(12)1;}}
} pir.c
#include stm32f4xx.h // Device headervoid Pir_Init()
{RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF,ENABLE);GPIO_InitTypeDef gpio_init;gpio_init.GPIO_ModeGPIO_Mode_IN;
// gpio_init.GPIO_OTypeGPIO_OType_OD;gpio_init.GPIO_PinGPIO_Pin_14;gpio_init.GPIO_PuPdGPIO_PuPd_DOWN;//默认为低电平gpio_init.GPIO_SpeedGPIO_High_Speed;GPIO_Init(GPIOF,gpio_init);
}pir.h
#include stm32f4xx.h // Device headervoid Pir_Init()
{RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF,ENABLE);GPIO_InitTypeDef gpio_init;gpio_init.GPIO_ModeGPIO_Mode_IN;
// gpio_init.GPIO_OTypeGPIO_OType_OD;gpio_init.GPIO_PinGPIO_Pin_14;gpio_init.GPIO_PuPdGPIO_PuPd_DOWN;//默认为低电平gpio_init.GPIO_SpeedGPIO_High_Speed;GPIO_Init(GPIOF,gpio_init);
}5、运行结果 pir传感器控制亮灯