元器件:1.震动感应器,继电器,LED灯等。
震动传感器:引脚VVC、GND、高低点位变化DO(接STM32的信号端)、AO模拟信号端(本实验未使用到)
其中实现的代码如下:
void Shake_Init (void)
{
GPIO_InitTypeDef Shake_init;
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA, ENABLE );//ʹÄÜAPB2µÄGPIOBʱÖÓ
//ÅäÖÃʱÖӽṹÌå
Shake_init.GPIO_Mode = GPIO_Mode_IPD;
Shake_init.GPIO_Pin = GPIO_Pin_1;
Shake_init.GPIO_Speed = GPIO_Speed_10MHz;
GPIO_Init( GPIOA, &Shake_init);//³õʼ»¯º¯Êý
}
mian函数:
int main()
{
Relay_init();
Shake_Init ();
GPIO_SetBits(GPIOA,GPIO_Pin_3);
while(1)
{
if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_1) == 0)
{
GPIO_ResetBits(GPIOA,GPIO_Pin_3);
delay(9999);
GPIO_SetBits(GPIOA,GPIO_Pin_3);
}
else
{
GPIO_SetBits(GPIOA,GPIO_Pin_3);
}
}
}
本实验要调用库函数GPIO_ReadInputDataBit()对CPIOA的1号引脚的高低电平的读取,如果发声震动,则是低电平,读到低电平,32上的板子3号引脚会发信号给继电器会供电,使得灯亮起来。