一、开发环境
开发板:stm32f407zgt6
入侵感应微波防盗器型号:室内有线红外三鉴探测器SKY-1125
传感器介绍:
二、接线方式
tamper:入侵
入侵检测和报警相当于一个开关。
入侵检测是防拆设计,如果设备被拆开,则继电器开关会关闭或者断开。
主控板接PD3引脚
报警一端接地,一端接PD3引脚。
三、测试
编写测试代码那,测试PD3的引脚电平输出。代码如下:
#include <rtthread.h>
#include <rtdevice.h>
#include <board.h>
static int bsp_sky1125_init(void);
static int bsp_sky1125_read(void);
#ifndef SKY1125_PIN_NUM
#define SKY1125_PIN_NUM GET_PIN(D, 3)
#endif
#define THREAD_STACK_SIZE 512
#define THREAD_PRIORITY 20
#define THREAD_TIMESLICE 10
void sky1125_on(void *args)
{
rt_kprintf("\r\nINT SKY1125_PIN_NUM on!\r\n");
}
//void sky1125_off(void *args)
//{
// rt_kprintf("\r\nINT SKY1125_PIN_NUM off!\r\n");
//}
static int bsp_sky1125_init(void)
{
rt_pin_mode(SKY1125_PIN_NUM, PIN_MODE_INPUT_PULLUP);
rt_pin_attach_irq(SKY1125_PIN_NUM, PIN_IRQ_MODE_RISING, sky1125_on, RT_NULL);
//rt_pin_attach_irq(SKY1125_PIN_NUM, PIN_IRQ_MODE_FALLING, sky1125_off, RT_NULL);
/* 使能中断 */
rt_pin_irq_enable(SKY1125_PIN_NUM, PIN_IRQ_ENABLE);
return 0;
}
static int bsp_sky1125_read(void)
{
return rt_pin_read(SKY1125_PIN_NUM);
}
/* 线程入口 */
static void sky1125_thread_entry(void* parameter)
{
bsp_sky1125_init();
while (1)
{
rt_kprintf("\r\nbsp_sky1125_read : %d\r\n",bsp_sky1125_read());
rt_thread_mdelay(1000);
}
}
int sky1125_thread_sample(void)
{
rt_thread_t tid = RT_NULL;
/* 创建线程 1 */
tid = rt_thread_create("sky1125",
sky1125_thread_entry,
RT_NULL,
THREAD_STACK_SIZE,
THREAD_PRIORITY, THREAD_TIMESLICE);
if (tid != RT_NULL)
rt_thread_startup(tid);
return 0;
}
INIT_APP_EXPORT(sky1125_thread_sample);