你现在解决了吗? 不应该是下拉输入吗? ![]() |
你如果是自己用模块,应该有设置的地方,你如果自己用芯片,自己写代码,就在程序中设置,这个我之前用过!!!!!!!!! |
void LED_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //使能 GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);//1رÕjtag£¬ê1ÄüSWD£¬¿éòÔóÃSWDÄ£ê½μ÷êÔ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; // GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO¿úËù¶èÎa50MHz GPIO_Init(GPIOA, &GPIO_InitStructure); //¸ù¾Yé趨2Îêy3õê¼»ˉGPIOA.8 GPIO_SetBits(GPIOA,GPIO_Pin_8); //PA.8 êä3ö¸ß GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //上拉输入 GPIO_Init(GPIOA, &GPIO_InitStructure); } #include "led.h" #include "delay.h" #include "sys.h" int main(void) { delay_init(); //Ñóê±oˉêy3õê¼»ˉ LED_Init(); //3õê¼»ˉóëLEDᬽóμÄó2¼t½ó¿ú while(1) { if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_15)==1)检测到人 GPIO_ResetBits(GPIOA,GPIO_Pin_8);//灯亮 else GPIO_SetBits(GPIOA,GPIO_Pin_8);//灯熄灭 } 最出的时候还能对这人的时候一闪一闪的,对这人就熄灭,感觉测量时间有延迟,后来就凝了红外热释传感器上的两个旋钮,结果不对着人就一直亮着,即上电就亮,明明在初始化里就让灯熄灭的 |
有个旋扭,调着调着就原有的功能都实现不了 |
admin 发表于 2018-6-1 19:33 有个延时调节,调着调着感觉红外不能用了,代码没变,功能实现不了 |
模块上面肯定有个旋钮 |