【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 */
}

六、讲解视频

相关推荐
虎王物联8 小时前
STM32 HAL库串口DMA空闲中断:高效接收不定长Modbus数据帧
stm32·单片机·嵌入式硬件·dma·modbus
自小吃多8 小时前
DXF文件导入与PCB板框定义笔记
笔记·嵌入式硬件
SUNNYSPY0019 小时前
AO4402-ASEMI便携设备电源开关AO4402
单片机
是隼人9 小时前
buuctf-pwn xdctf2015_pwn200题解(学习过程持续更新)
c语言·学习·安全·pwn入门·ctf入门
单片机仿真设计11 小时前
【proteus仿真】基于 STC89C52 单片机家用智能台灯设计(仿真图+程序)
stm32·单片机·嵌入式硬件·proteus·毕设
2601_9507906811 小时前
深圳国产单片机厂商怎么选?技术能力与服务能力检查表
单片机·嵌入式硬件·国产mcu·芯片厂商·深圳单片机·单片机选型
布莱克60513 小时前
数组详解:定义、作用、应用场景及与链表的区别(C/C++ 代码讲解)
c语言·开发语言·c++·数组
hongmai66688813 小时前
MP2348GTL-Z:这颗24V/4A同步降压芯片,把性能和体积平衡得恰到好处
c语言·开发语言·arm开发·单片机·5g
多弗朗皮卡丘13 小时前
C语言梦开始的地方19:文件操作
c语言·开发语言
笨笨饿13 小时前
#135_代码中的类型重定义艺术:从基础封装到函数类型设计
开发语言·stm32·单片机·嵌入式硬件·mcu·物联网·嵌入式实时数据库