STM32Cube HW-493激光发射
【摘要】 文章代码使用 HAL 库。@TOC 一、HW-493激光模块HW-493激光模块 是一种小型化的激光发射模块,其主要特点是体积小、功耗低、精度高、可靠性强。它采用了半导体激光器作为光源,搭配高精度光学透镜,可以发射出稳定、准确、高亮度的激光光束。VCC :+5 V 电压。(电源电压范围为 3.5V-5.5V,过高或过低都会影响模块的正常工作 )-负极 :接 GND 。S :连接到单片机的 i...
文章代码使用
HAL
库。
@TOC
一、HW-493激光模块
- HW-493激光模块 是一种小型化的激光发射模块,其主要特点是体积小、功耗低、精度高、可靠性强。它采用了半导体激光器作为光源,搭配高精度光学透镜,可以发射出稳定、准确、高亮度的激光光束。
- VCC :
+5 V
电压。(电源电压范围为 3.5V-5.5V,过高或过低都会影响模块的正常工作 ) - -负极 :接
GND
。 - S :连接到单片机的 io 口。(这里我接在 STM32 的 PA7 处)
- 工作原理:
HW-493激光发射器 的控制电路需要接收一个数字信号电平为==高电平==时,激光器开始工作并==发射激光==。当数字信号的电平为==低电平==时,==停止==激光的发射。
二、创建工程:
这里可以使用 CubeMX 设置引脚,也可以自己写引脚控制代码。
- 配置引脚
①创建一个结构体变量:
GPIO_InitTypeDef GPIO_InitStruct = {0};
②使能 GPIOA 引脚
__HAL_RCC_GPIOA_CLK_ENABLE();
③初始化引脚为 低电平
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_7, GPIO_PIN_RESET);
④设置引脚的 模式,输出,速度
GPIO_InitStruct.Pin = GPIO_PIN_7;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
⑤完成初始化
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
- CubeMX 设置引脚:
使用 CubeMX 生成工程的步骤可以参考我之前的文章,这里我只把需要改变的列出来了。STM32f103 CubeMX封装 led程序
①设置引脚为 Ouput 输出引脚
②设置初始引脚电平
三、代码详解:
- 发射激光:
void HW_493_ON(void)
{
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_7, GPIO_PIN_SET); //高电平发射激光
}
- 关闭激光
void HW_493_OFF(void)
{
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_7, GPIO_PIN_RESET); //低电平关闭激光
}
- 配置引脚
void GPIO_Reinit(void)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
__HAL_RCC_GPIOA_CLK_ENABLE();
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_7, GPIO_PIN_RESET);
GPIO_InitStruct.Pin = GPIO_PIN_7;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
}
int main()
{
GPIO_Reinit();
HW_493_ON();
HAL_Delay(5000); //延时5 秒
HW_493_OFF();
HAL_Delay(2000); //延时 2 秒
}
实验现象:
总结
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)