一、开发环境
开发板: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 10void 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);