你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】基于STM32F103C8T6最小系统板HAL库CubeMX驱动HC-SR501红外人体传感模块

[复制链接]
STMCU小助手 发布时间:2022-4-15 10:00
前言
( M& \; [' z9 ~8 D& @7 n相关模块的资料不再赘述,已经有很多人写过,这里给出其中一篇我觉得写的比较详细的文章链接:+ x  |% G: j% G* _+ e4 U/ }$ N1 Y, _4 k
模块资料介绍:* M* s8 ~$ t- _' o) m% W
探究人体红外传感器HC-SR501
2 d3 d! @0 a4 U* m# d3 ?* L7 E- Z8 E, Z, |* `3 v
程序整体框架是基于我的上一篇串口收发的工程修改的,相关串口、GPIO配置也不再赘述,这里给出链接:, F. [7 ]3 _& y- L
STM32学习笔记 二、基于STM32F103C8T6和STM32CubeMX实现UART串口通信数据收发  z/ U4 `1 o0 m2 K
! L6 G* M/ u# k: ]
一、配置CubeMX
+ S% B4 ~: J; u+ X' j9 G4 I. i1、新建工程;
4 _, S: x9 h( }! x) I2、配置时钟源,在RCC里面的HSE配置的是晶振时钟;
) [$ {1 N/ ~# H% b. j, X3 B3、配置程序烧录引脚SYS为SWD模式;
4 y# ?. t' v. j! J8 u4、配置GPIO输出口,配置一个LED灯(我的板子是PC13),起到串口成功接收到数据时的指示作用;; v7 |& \* Q  z
5、配置GPIO输入口,用来读取模块的输出电平,我选的是PA1口;
  j) I! C. A" ?  {# x) C0 Y6 M( m6、配置串口收发引脚;  m) x2 q: L9 h! |' X( i
7、配置时钟树,我还是开到最高的72MHz;
5 f- c9 V" ]- c- r+ c6 ^+ q" f. s8、进行项目设置,最后生成代码,CubeMX部分就大功告成了
  d) Z: u7 f  p8 v
' C8 o: t2 M& {' p $([Y)5[1~BVM(JS13(_KP%6.png
6 l; V' z' [' @6 h- t
% X. H+ a4 `/ a二、硬件连线部分
+ ?' R0 Y. E+ nCH340 ↔ STM32F103C8T6最小系统板:3 H& R3 B( L3 B! I3 q
 TX    ↔        RX$ r2 C! q* ^$ D4 R: \# f" ]" Z' p
 RX    ↔        TX
2 I) K  `2 {# A0 o9 O2 d
8 w' Q3 C4 y& G) d8 ZDAP-LINK ↔ STM32F103C8T6最小系统板% u" I, @( [/ p; s; J; b4 U
  3.3V    ↔         VCC  k% {) E( N3 z- P$ v7 D
  GND    ↔         GND- H6 R  w: r/ i' {6 P
  SWIO   ↔         SWIO
. |# o! n3 O; U; |; w/ T3 H5 D SWCLK  ↔        SWCLK
+ b% f6 w  t6 r" Y- p8 r8 E3 C+ L! L  ~* c! s$ D
HC-SR501模块 ↔ STM32F103C8T6最小系统板3 H% I  v6 K  N; E/ F/ {( E
    OUT      ↔           PA1" f6 [, N' _: h
    GND      ↔           GND
& s4 B& h8 c. V5 j7 S0 U5 N7 G. j0 I9 D, P: x8 T& C
HC-SR501模块 ↔ DAP-LINK (这里注意模块供电范围为4.5V-20V,用3.3V无法驱动)
! ]0 f5 m% `" K% S( u) P& s& z  h     VCC     ↔    5V. B+ N1 X, s9 L
9 L; B, ?. U! P; M- s+ U, m0 @3 {
三、逻辑代码部分

: j9 }" Z, d. s% r代码很简单,在之前工程的基础上,仅用在while里进行修改
) o4 t8 k( u# c) C9 a: L; c
3 y! ]; \0 L! A1 V4 O# m
  1. /* USER CODE BEGIN 4 */
    5 Q  q7 I6 {9 d$ g

  2. 8 D" B1 b$ @* a8 K/ i& {' y
  3.   /* USER CODE BEGIN WHILE */1 L& M) G) }8 X; T+ D
  4.   while (1)- T5 h2 V* J& F& ]0 n4 [/ t: Z0 x
  5.   {
    + U  o1 \; L% p" W7 b; V! G* h# n6 e
  6.     /* USER CODE END WHILE */
    + t; M6 i& H( G
  7. 4 @/ s4 C3 B* Q& U2 [# V
  8.     /* USER CODE BEGIN 3 */
    ( a# ~$ P* q9 r$ h! W
  9.                 if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_1) == 1); ?9 T. |/ J* v6 F4 I# _% j
  10.                 {
    & c, @! h1 j, }4 {0 {; [
  11.                         HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,GPIO_PIN_RESET);//灭灯
    ; X- s  |3 w% Q& N" `; o" ^
  12.                         printf("有人\r\n");; e" h8 h" k* V% y. ~
  13.                         HAL_Delay(100);
    - t# A) C: F3 J1 U
  14.                 }
    1 b6 d# F5 p1 I$ j. B
  15. 2 |( V2 x# e) Z+ P  {$ V
  16.                 else  
    9 A( K4 Y4 K: ~) p' ?# B
  17.                 {* W6 @$ u1 f2 s6 K* `
  18.                         HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,GPIO_PIN_SET);//亮灯
    * ?* s. Y7 `: |# U4 Y$ E
  19.                         printf("没人\r\n");& Z$ A0 \9 U# w9 o0 l
  20.                         HAL_Delay(1000);
    & V& \5 Q6 i2 M; \, D) s
  21.                 }  L. r6 a# i* W6 E
  22.                 4 a& [; v, _- b9 m
  23.   }
    , h+ y1 z8 {* L+ u0 y% ?8 Y
  24.         
    & r/ z) [  `2 B) D
  25.   /* USER CODE END 3 */* W3 [& U8 A. x- Z& U1 {2 K
复制代码
' I$ c; |  ?  |, J3 O2 `
现象:
7 {# S3 R! ]! @( D  y. X; t8 `. l, A/ A0 a; D0 x6 F
感应到人体,板载LED绿灯亮,同时串口打印“有人”。
0 J2 w) S5 p1 ?
+ O: ?0 T9 g8 u* p& m 1c58833f7b9645d2af11218e7c9792c9.gif ) a7 @/ M" w4 \' x+ T/ k' s

9 O5 [  ?. I( r& R: t* W# H注意:: e/ D% o  @5 q* |% \
重定义printf后,必须在target里面勾选上MicroLIB,调用一下这个微型库,不然一直卡在里面。
9 `' u4 h" G2 i: Q% w& P! J2 c# }( B  i( W
I0]9VDGKIUWN9T3P25QACPT.png 6 g7 E" B; p/ p7 K) M5 H

: _0 P6 h2 @& ^, L4 o. P! B
8 w6 W3 ~. H  x; k' s: [& z
赞 收藏 评论0 发布时间:2022-4-15 10:00

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版