恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

STM32 反射式光电传感器 ST188 实战

  • 首页
  • 资讯中心
  • /
  • STM32 反射式光电传感器 ST188 实战

相关资讯

C++线程同步之互斥锁 2026/9/1 19:26:40
SPSS 16老版本安装实战:兼容性验证与常见故障解决 2026/9/1 19:26:40
鸿蒙 AGC:申请ACL权限(受限权限) 2026/9/1 19:26:40

最新资讯

技术方案迁移评估指南:从MPX到维克托家族的验证流程
路由规则在测试集准确率98%,上线当天被过拟合反杀
AngusGit:AI 可写流水线 YAML,合并仍要人评
用Python计算《暗区突围》MPX武器DPS:从数据看冲锋枪真实强度
AI语音电话机器人系统源码:从架构部署到稳定运营全解析
ComfyUI v0.33.x实测:从AI音乐生成到视频渲染,一套工作流全搞定

今日推荐

自研推理加速器Redwood:两周内实现PyTorch模型高效部署的实战教程
V4L2摄像头采集实战:从camera_client.rar到出图全流程解析
从“谁发明了钢琴键”到知识问答智能体:RAG与记忆工程实践

本周热门

备战数据库管理工程师校招:索引、事务、备份恢复核心考点解析
数字电路时序基石:深入理解建立时间与保持时间
蓝桥杯国赛超声波测距机:从单片机原理到嵌入式系统实战

本月精选

自研推理加速器Redwood:两周内实现PyTorch模型高效部署的实战教程
V4L2摄像头采集实战:从camera_client.rar到出图全流程解析
从“谁发明了钢琴键”到知识问答智能体:RAG与记忆工程实践

STM32 反射式光电传感器 ST188 实战

发布时间:2026/9/1 19:26:40
STM32 反射式光电传感器 ST188 实战 STM32 HAL库实战ST188反射式红外光电传感器遮挡检测摘要本文基于STM32单片机与HAL库对ST188反射式红外光电传感器进行驱动开发与功能验证。传感器依靠红外光反射原理实现非接触式物体检测实验通过手掌遮挡传感器探头来改变输出电平程序采用模块化编程底层硬件操作独立封装上层业务逻辑调用接口读取传感器状态。该方案适用于循迹小车、流水线计数、物料到位检测、嵌入式课程实验等场景。开发环境STM32CubeMX、Keil‑MDK主控芯片STM32系列单片机传感器型号ST188反射式红外光电传感器引脚定义信号输出引脚 PD14工程说明本次实验原始驱动文件命名为st1118.c / st1118.h课程工程自定义命名实际物理器件为标准ST188光电传感器。一、ST188传感器工作原理ST188内部集成950nm红外发射二极管与光敏接收三极管检测距离典型范围4‑13mm无遮挡状态红外光线反射回到接收管模块输出高电平逻辑1有遮挡状态手掌或障碍物挡住光路反射光消失模块输出低电平逻辑0。模块自带外围分压调理电路单片机GPIO配置为浮空输入模式GPIO_NOPULL无需开启芯片内部上拉/下拉电阻。二、工程文件结构文件名称功能描述st1118.h头文件对外提供初始化与状态读取函数声明st1118.c底层驱动源文件完成GPIO时钟开启、引脚初始化、电平读取main.c主程序调用驱动接口完成状态判断、串口打印、LED指示核心接口函数ST1118_Init()、ST1118_Read_State()三、完整工程代码st1118.c#includest1118.h//引脚宏定义#defineST1118_PinGPIO_PIN_14#defineST1118_GPIO_PortGPIOD#defineST1118_Port_Clk_Enable__HAL_RCC_GPIOD_CLK_ENABLE()//读取引脚电平宏#defineST1118_STATE()HAL_GPIO_ReadPin(ST1118_GPIO_Port,ST1118_Pin)/** * brief ST188光电传感器GPIO初始化 * note 驱动文件命名保留课程工程 st1118 * retval 无 */voidST1118_Init(void){GPIO_InitTypeDef GPIO_InitStruct;ST1118_Port_Clk_Enable;GPIO_InitStruct.PinST1118_Pin;GPIO_InitStruct.ModeGPIO_MODE_INPUT;GPIO_InitStruct.PullGPIO_NOPULL;HAL_GPIO_Init(ST1118_GPIO_Port,GPIO_InitStruct);}/** * brief 获取ST188遮挡状态 * retval 1无遮挡0物体遮挡 */uint8_tST1118_Read_State(void){returnST1118_STATE();}st1118.h#ifndef__ST1118_H#define__ST1118_H#includestm32f4xx_hal.hvoidST1118_Init(void);uint8_tST1118_Read_State(void);#endifmain.c 测试逻辑#includest1118.hintmain(void){HAL_Init();SystemClock_Config();MX_GPIO_Init();ST1118_Init();while(1){uint8_tsensor_statusST1118_Read_State();if(sensor_status0){printf(【检测遮挡】手掌挡住ST188传感器\r\n);HAL_GPIO_WritePin(GPIOA,GPIO_PIN_0,GPIO_PIN_SET);}else{printf(【无遮挡】移开手掌\r\n);HAL_GPIO_WritePin(GPIOA,GPIO_PIN_0,GPIO_PIN_RESET);}HAL_Delay(200);}}四、核心代码分析外设时钟使能STM32的GPIO端口上电默认关闭时钟必须执行__HAL_RCC_GPIOD_CLK_ENABLE()才能正常采集引脚电平。浮空输入配置ST188模块自带外部电阻单片机引脚设置为GPIO_NOPULL避免内部上下拉改变传感器原始输出电平。HAL库引脚读取APIHAL_GPIO_ReadPin()读取引脚逻辑电平高电平返回1低电平返回0。模块化设计优势硬件引脚全部用宏定义管理如果后续更换IO口仅修改驱动头部宏上层业务代码无需改动可移植性更强。五、实际实验现象程序烧录传感器上电手离开探头串口打印「无遮挡」LED熄灭手掌盖住传感器探头串口打印「检测遮挡」LED点亮反复抬手遮挡电平状态跟随手部动作实时切换。六、调试踩坑总结电平始终不变排查GPIOD时钟是否开启、传感器VCC/GND接线是否正确电平逻辑颠倒确认传感器输出逻辑不要误开启单片机内部上拉/下拉强光环境识别不稳定太阳光中红外光会产生干扰产品设计时需要增加遮光结构抖动误触发正式项目中可以增加软件消抖延时或者多次采样滤波。七、拓展应用场景智能小车红外循迹避障流水线产品计数检测打印机纸张有无检测自动门人体接近感应方案。总结ST188反射式红外光电传感器本质就是数字电平采集实验。本项目完整演示了STM32的GPIO输入配置、HAL库使用以及嵌入式模块化编程规范适合嵌入式入门学习。代码可直接修改后用于课程设计与小型物联网项目开发。标签#STM32#HAL库#ST188#反射式红外传感器#嵌入式开发#传感器驱动

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号