基于STM32F103C8T6最小系统板HAL库CubeMX驱动HC-SR501红外人体传感模块
Posted 遗忘丶
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于STM32F103C8T6最小系统板HAL库CubeMX驱动HC-SR501红外人体传感模块相关的知识,希望对你有一定的参考价值。
系列文章目录
一、基于STM32F103C8T6最小系统板和STM32CubeMX实现LED灯循环闪烁
二、基于STM32F103C8T6和STM32CubeMX实现UART串口通信数据收发
三、实战小例程 基于STM32F103C8T6最小系统板和STM32CubeMX驱动WS2812B光立方
四、基于STM32F103C8T6最小系统板HAL库CubeMX驱动HC-SR501红外人体传感模块
五、基于STM32F103C8T6(HAL库)的HC-SR501红外人体传感及HC-SR04超声波测距
文章目录
前言
相关模块的资料不再赘述,已经有很多人写过,这里给出其中一篇我觉得写的比较详细的文章链接:模块资料介绍:
探究人体红外传感器HC-SR501
STM32学习笔记 二、基于STM32F103C8T6和STM32CubeMX实现UART串口通信数据收发
一、配置CubeMX
1、新建工程;
2、配置时钟源,在RCC里面的HSE配置的是晶振时钟;
3、配置程序烧录引脚SYS为SWD模式;
4、配置GPIO输出口,配置一个LED灯(我的板子是PC13),起到串口成功接收到数据时的指示作用;
5、配置GPIO输入口,用来读取模块的输出电平,我选的是PA1口;
6、配置串口收发引脚;
7、配置时钟树,我还是开到最高的72MHz;
8、进行项目设置,最后生成代码,CubeMX部分就大功告成了
二、硬件连线部分
CH340 ↔ STM32F103C8T6最小系统板:
TX ↔ RX
RX ↔ TX
DAP-LINK ↔ STM32F103C8T6最小系统板
3.3V ↔ VCC
GND ↔ GND
SWIO ↔ SWIO
SWCLK ↔ SWCLK
HC-SR501模块 ↔ STM32F103C8T6最小系统板
OUT ↔ PA1
GND ↔ GND
HC-SR501模块 ↔ DAP-LINK (这里注意模块供电范围为4.5V-20V,用3.3V无法驱动)
VCC ↔ 5V
三、逻辑代码部分
代码很简单,在之前工程的基础上,仅用在while里进行修改
/* USER CODE BEGIN 4 */
/* USER CODE BEGIN WHILE */
while (1)
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_1) == 1)
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,GPIO_PIN_RESET);//灭灯
printf("有人\\r\\n");
HAL_Delay(100);
else
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,GPIO_PIN_SET);//亮灯
printf("没人\\r\\n");
HAL_Delay(1000);
/* USER CODE END 3 */
现象:
感应到人体,板载LED绿灯亮,同时串口打印“有人”。
注意:
重定义printf后,必须在target里面勾选上MicroLIB,调用一下这个微型库,不然一直卡在里面。
以上是关于基于STM32F103C8T6最小系统板HAL库CubeMX驱动HC-SR501红外人体传感模块的主要内容,如果未能解决你的问题,请参考以下文章
基于STM32F103C8T6最小系统板HAL库CubeMX驱动HC-SR501红外人体传感模块
基于STM32F103C8T6最小系统板HAL库CubeMX SPI驱动7针 OLED显示屏(0.96寸 1.3寸通用)
基于STM32F103C8T6最小系统板HAL库CubeMX SPI驱动7针 OLED显示屏(0.96寸 1.3寸通用)
基于STM32F103C8T6最小系统板HAL库CubeMX SPI驱动7针 OLED显示屏(0.96寸 1.3寸通用)