引言
本次介绍的是一个非常基础且简单使用的激光发射模块,控制起来是很简单,只需要GPIO相关知识即可。外观如下图所示。

由于我买来时商家提供的只有一个51的代码参考,因此我稍微在网上搜了一下相关资料后学习使用的,不过由于这个模块真的太简单,就像基础的点灯代码一样,单片机通过S引脚输出高电平的数字信号即可启动激光发射,反之关闭。
一、激光发射模块介绍
HW-493激光模块 是一种小型化的激光发射模块,其主要特点是体积小、功耗低、精度高、可靠性强。它采用了半导体激光器作为光源,搭配高精度光学透镜,可以发射出稳定、准确、高亮度的激光光束。
二、引脚定义及功能
主要就一个引脚注意一下就行,也就是这个丝印是S的引脚,这个脚是单片机给该模块输入数字信号的,输入1时激光头发射激光,输入0时激光头关闭激光。

三、代码参考(STM32)
然后直接展示我编写的基于STM32F103系列单片机使用寄存器方式编写的控制代码。
3.1 laser.h
cpp
/*
* @Descripttion: 激光传感器驱动文件(.h)
* @Author: JaRyon
* @version:
* @Date: 2025-10-30 21:33:29
*/
#ifndef __LASER_H
#define __LASER_H
/**
* 引脚连接
*
* -/GND ---> GND
* VCC ---> 3.3V
* S ---> PA0
*
*/
#include "stm32f10x.h"
void Laser_Init(void);
void Laser_On(void);
void Laser_Off(void);
#endif // !__LASER_H
3.2 laser.c
cpp
/*
* @Descripttion: 激光传感器驱动文件(.c)
* @Author: JaRyon
* @version:
* @Date: 2025-10-30 21:33:18
*/
#include "laser.h"
/**
* @brief 激光传感器初始化
* @param void 无
* @return void
* @example Laser_Init();
* @attention
*/
void Laser_Init(void)
{
// 控制端口的时钟以及端口配置
RCC->APB2ENR |= RCC_APB2ENR_IOPAEN;
GPIOA->CRL |= GPIO_CRL_MODE0;
GPIOA->CRL &= ~GPIO_CRL_CNF0;
// 初始化默认低电平
GPIOA->ODR &= ~GPIO_ODR_ODR0;
}
/**
* @brief 启动激光传感器-1
* @param void 无
* @return void
* @example Laser_On();
* @attention
*/
void Laser_On(void)
{
GPIOA->ODR |= GPIO_ODR_ODR0;
}
/**
* @brief 关闭激光传感器-0
* @param void 无
* @return void
* @example Laser_Off();
* @attention
*/
void Laser_Off(void)
{
GPIOA->ODR &= ~GPIO_ODR_ODR0;
}
以上便是本次文章的所有内容,欢迎各位朋友在评论区讨论,本人也是一名初学小白,愿大家共同努力,一起进步吧!
鉴于笔者能力有限,难免出现一些纰漏和不足,望大家在评论区批评指正,谢谢!