以下是一个使用STM32的震动开关的代码示例,详细说明请见注释。
#include "stm32f4xx.h"
#define VIBRATION_PIN GPIO_Pin_0
#define VIBRATION_GPIO_PORT GPIOA
#define VIBRATION_GPIO_CLK RCC_AHB1Periph_GPIOA
void Delay(__IO uint32_t nCount);
int main(void)
{
// 初始化LED的GPIO
GPIO_InitTypeDef GPIO_InitStructure;
RCC_AHB1PeriphClockCmd(VIBRATION_GPIO_CLK, ENABLE);
GPIO_InitStructure.GPIO_Pin = VIBRATION_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN; // 管脚配置为输入模式
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; // 不启用上拉或下拉电阻
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; // GPIO速度为50MHz
GPIO_Init(VIBRATION_GPIO_PORT, &GPIO_InitStructure);
while (1)
{
// 判断震动开关是否被按下
if (GPIO_ReadInputDataBit