目录
一、震动传感器介绍及实战
单片机供电VCC GND接单片机
产品不震动,输出高电平、模块上的DO口
产品震动,输出低电平,绿色指示灯亮
AO口不用
5V:代表正极
GND:代表负极
DO口:do是一种模拟信号或者数字信号接口

二、编程代码实现
需求:当振动传感器接收到振动信号时,使用中断方式点亮LED1。
1、gpio.c---------初始化GPIO口引脚函数
#include "gpio.h"
void MX_GPIO_Init(void) //初始化GPIO口引脚函数
{
GPIO_InitTypeDef GPIO_InitStruct = {0}; //初始化设置GPIO的结构体
/* GPIO Ports Clock Enable */
__HAL_RCC_GPIOD_CLK_ENABLE(); //使能GPIOD时钟
__HAL_RCC_GPIOA_CLK_ENABLE(); //使能GPIOA时钟
__HAL_RCC_GPIOB_CLK_ENABLE(); //使能GPIOB时钟
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_8, GPIO_PIN_SET); //GPIO引脚输出1或者0的函数
/*Configure GPIO pin : PA4 */
GPIO_InitStruct.Pin = GPIO_PIN_4; //配置GPIO口引脚:PA4
GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING; //下降沿触发检测的外部中断模式
GPIO_InitStruct.Pull = GPIO_NOPULL; //内部电阻既不拉高也不拉低
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); //根据上述内容,初始化GPIOA引脚
/*Configure GPIO pin : PB8 */
GPIO_InitStruct.Pin = GPIO_PIN_8; //配置GPIO口引脚:PB8
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; //推挽输出;推挽输出可以真正能真正的输出高电平
GPIO_InitStruct.Pull = GPIO_NOPULL; //内部电阻既不拉高也不拉低
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; //GPIO引脚输出的频率

本文介绍了如何使用STM32单片机配合震动传感器进行中断控制,当检测到震动时通过中断点亮LED。同时讲解了继电器的工作原理及其与STM32的连接方法,实现小电流控制大电流的功能。在编程中特别注意了中断服务函数的编写和中断优先级设置,以避免系统卡死问题。
最低0.47元/天 解锁文章
219

被折叠的 条评论
为什么被折叠?



