
前言 相关模块的资料不再赘述,已经有很多人写过,这里给出其中一篇我觉得写的比较详细的文章链接: 模块资料介绍: 探究人体红外传感器HC-SR501 程序整体框架是基于我的上一篇串口收发的工程修改的,相关串口、GPIO配置也不再赘述,这里给出链接: 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里进行修改
现象: 感应到人体,板载LED绿灯亮,同时串口打印“有人”。 ![]() 注意: 重定义printf后,必须在target里面勾选上MicroLIB,调用一下这个微型库,不然一直卡在里面。 ![]() |