【stm32简单外设篇】- 水银开关

一、适用场景

适用场景:倾斜/翻转检测(防倾覆报警、落地检测、门窗/盒盖开合检测、姿态/方向简单判断、低成本震动/角度触发)、实验室教学示例(机械开关读入、去抖策略)、低功耗唤醒(作为外部唤醒源)。

二、器材清单

水银开关或滚珠倾斜开关 ×1(注意:含汞器件有安全与法规限制)

stm32f103(或其它 STM32)开发板 ×1

若干杜邦线(母对母/公对母)×1组

三、工作原理(要点)

机械触点:水银开关内部一个小玻璃管,倾斜时内部汞液流动接通两个电极,形成闭合(或开路,视常开/常闭型号)。因此输出为开关量(高/低),没有模拟量信息。

特性:响应快、接触电阻低;但属机械触点会有抖动(接点抖动)与寿命问题。

安全/环保注意:水银(汞)有毒,商业与长期项目应优先选择无汞替代(如滚珠倾斜开关、霍尔角度传感器、加速度计/IMU)。在使用水银开关时避免破碎、妥善封装与回收。

四、接线示意
VCC → +5V

GND → GND

标准库

PA0→IO

HAL库

PA0→S

五、示例代码

标准库

HAL库

cpp 复制代码
int main(void)
{

  /* USER CODE BEGIN 1 */

  /* USER CODE END 1 */

  /* MCU Configuration--------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* USER CODE BEGIN Init */

  /* USER CODE END Init */

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */

  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_USART1_UART_Init();
  /* USER CODE BEGIN 2 */

  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
		if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0) == 1)
			HAL_UART_Transmit(&huart1,"无接触\r\n", strlen("无接触\r\n"), HAL_MAX_DELAY);
		else
			HAL_UART_Transmit(&huart1,"有接触\r\n", strlen("有接触\r\n"), HAL_MAX_DELAY);
		HAL_Delay(1000);
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */
}

六、讲解视频

相关推荐
时代的凡人9 分钟前
生活中的恒流源和恒压源
嵌入式硬件
恒锐丰科技林技术员1 小时前
EG2181 半桥驱动芯片原理与应用解析
经验分享·嵌入式硬件·硬件工程
LONGZETECH1 小时前
新能源技术实训难题破解:纯电动汽车五大核心系统三维仿真解决方案
大数据·c语言·人工智能·安全·汽车
Jason_zhao_MR1 小时前
电力数据采集核心板选型指南
linux·嵌入式硬件·fpga开发·嵌入式
沐欣工作室_lvyiyi1 小时前
基于物联网的汽车智能座舱控制系统的设计和实现(论文+源码)
单片机·物联网·汽车·智能座舱·哈尔滨信息工程学院·黄河科技学院
创界工坊工作室1 小时前
21-基于单片机的智能窗帘与光照联动控制系统设计
stm32·单片机·嵌入式硬件·proteus
zhaoshuzhaoshu2 小时前
嵌入式系统看门狗详解——以 STM32 为例
stm32·嵌入式硬件
恒锐丰科技林技术员2 小时前
EG2113D 高压半桥驱动芯片:高压功率变换的实用驱动方案
经验分享·嵌入式硬件·硬件工程
知识分享小能手2 小时前
C学习教程,从入门到精通,C语言输入和输出(4)
c语言·开发语言·学习
石马马户2 小时前
传感器的中断 Latch、中断状态寄存器、中断读取与保持时间
stm32·单片机·嵌入式硬件