找回密码
 注册
关于网站域名变更的通知
查看: 174|回复: 0
打印 上一主题 下一主题

【开发教程7】疯壳·开源蓝牙心率防水运动手环-电容触摸

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-8-3 11:05 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
开源蓝牙心率防水运动手环
——疯壳·智能穿戴开发系列
电容触摸  
: K2 o+ K" }' ]* L, x
5 Q' \  f8 F* ?) I) p7 }

' H" t* s4 s% q$ B
' R# S$ @) V' Z( ?! G6 {! j  1相关简介
8 v4 ]0 S" \# A0 i1 D+ O/ T; a- X/ a; ?  Y8 ~4 t/ X4 _: M
  本次章节,我们将使用到 DA14580 的外部中断,通过触摸手环主板上面的小弹簧,触发中断。" j  {8 n$ T) O+ p( ~5 v' Q( T
  DA14580 内部有嵌套中断向量控制器( NVIC,Nested Vectored Interrupt Controller),支持 24 个中断,能够中断配置与处理异常代码。当发生一个中断请+ b7 N. d. {% N4 y/ f. j
  求时,自动执行对应的中断函数,不需要软件确定异常向量。中断可以有 4 个不同的可编程的优先级,NVIC 自动处理嵌套中断。对于安全关键系统,又不可屏蔽中断(NMI,Non maskable interrupt)输入。
7 d: t: {3 P8 x6 p  DA14580 内部还有一个键盘控制器,可以用于延时 GPIO 信号进入的时间。可以检测所有的 I/O 口的电平变化。当监测信号时,可以产生中断(KEYBR_IRQ)。同时,另外有 5 个中断(GPIOn_IRQ)可以被 GPIO 口触发。
' P( v/ u, [; }3 ~  2硬件设计' ]; R" y: }: G$ [

' b& a( r3 T: p, c' q7 B3 C5 p  下面的就是本次使用的触摸按键,采用的是 RH6015,中断引脚连接到我们DA14850 的 P27 脚。
  P1 g; s' U2 D% a7 C
2 v, C" f: s6 z# W3 w( s6 k% o/ l- P   
6 U- w1 [- \8 ?' v9 r  图 1% t. I, Y0 ]' x: g- ~$ W  f4 d
  RH6015 是一款内置稳压模块的单通道电容式触摸感应控制开关 IC,可以替代传统的机械式开关。当我们触摸到 RH1615 第三引脚前的触摸电容时,第一引脚会由高电平变成低电平。
2 c/ L3 h% @1 e" g( O1 o2 s  3软件设计7 L; V9 d, ^2 Z: W: j5 J6 C' W0 w
( w, p- V* l5 J8 S) K% w
  本次软件,将完触摸一次按键,打印一次累计按键次数的现象。
5 U( n, I+ f& o. t0 H. Z
( C+ p8 T  K7 `3 Q2 Z$ G  整个实验代码,将使用到两个部分:串口和外部中断。关于串口的初始化配置,以及串口打印的相关函数,可以参考前面的章节,本章节只介绍外部中断的相关代码。
4 F1 n  H! {& k6 s+ k  要使用外部中断,就需要一下几个流程:
, p/ A2 j) k. j8 H$ V; b9 z" {! N' ~: N' z0 I0 Y0 k/ D( q
  (1)配置要使用的 IO 口。
3 V* i  J' ^* f1 E  W  Z  GPIO_ConfigurePin(BUTTON_PORT, BUTTON_PIN1, INPUT, PID_GPIO, false); 这里将 DA14580 的 P27 管脚设置为输入。7 ]5 }) z+ m# J% e$ q$ [& T9 t
  (2)注册中断回调函数。
# [+ a; Q' @0 i: u2 G; l  GPIO_RegisterCallback(GPIO0_IRQn, button1_int_handler);
5 w1 u+ u/ g2 X1 H) c6 ]  R, K  这个注册中断回调函数有两个参数, 第一个参数是外部中断编号, 可以填写GPIO0_IRQn、GPIO1_IRQn、GPIO2_IRQn、GPIO3_IRQn 和 GPIO4_IRQn。第二个是回调函数的指针。
" h: B+ |5 H% [6 }  (3)使能外部中断。2 v  i: |. `9 x8 V0 G6 J; ?
  GPIO_EnableIRQ( BUTTON_PORT, BUTTON_PIN1, GPIO0_IRQn, 1, 1, 10 );
8 \6 @" w6 |. [+ ]
2 t9 ]! k9 ~0 j2 s5 Z- v' P  完成以上 3 步之后,每当手触摸到触摸弹簧,代码就会运行到回调函数
0 L) g; q5 I+ T" V* i' X
7 W7 q4 a  R/ P1 e  button1_int_handler 之中。
$ l  N/ [7 s. a* B. c6 ?; e$ K  void button1_int_handler(void)" d/ z9 ]- w; w9 q1 S

  x  l4 b- ?0 h' w: |6 R# V  {# t3 J% G0 Z. c" \2 Y6 V
  static unsigned char button_count=0; button_count++;
; y2 N; i) T( @, ]* P  H/ `# K* s  printf_string("\r\n Number of key:"); printf_byte(button_count);% v1 u  a% I. }: w; N
  }
( V, i! p. s' j% K, v& a) k$ w/ \# K* t7 u  @: w! Y
  在中断函数 button1_int_handle ( ) 中, 首先定义了一个静态变量
  k& ~+ l# k$ i" H1 o. g6 m% F5 G9 m0 K0 K2 {+ f0 A  p/ D
  button_count,用于记录按键次数,进入一次外部中断,就将变量button_count 加 1,然后答应出换行符以及字符串 Number of key:,最后就打印出 button_count 的值。& W. M: A8 u# @: Y
  4实验现象
; C* t' |, y5 u( H1 ^+ z
1 F2 \! V4 d0 d8 w7 q. z$ ~7 {  首先,插好 Jlink 和 USB 转串口,然后打开打开串口调试助手。2 ]0 X6 V) r7 L' Y, {/ K+ P

8 a" |5 k  b9 d' ?+ g3 C' K2 u. d& W  (1)选择串口号,我们图中是 COM1,这个根据实际情况选择。2 G. o2 l8 v+ @" D. B! h& A: g
0 W$ h2 d2 g! z$ ]0 u# q' O
  (2)配置串口参数,波特率为 115200,数据位 8,停止位 1,没有校验位和控制流,与下图一致。
. [# T( w+ w& |( {9 R3 E  (3)点击打开串口。
2 k8 S* b% F, W' R( ]& Y& _
% R5 r/ V1 F1 h5 D+ q  B + _& a" h1 U! e
  图 2" M; I. R: Z- e) n: t
  配置完串口之后,打开我们提供的代码。
* n& S( r: f* E) @" H9 h9 q# G
+ C1 U. d6 ~% b4 e  (1)点击仿真按键。
) `8 t1 b( ^" d$ \
# y$ w- D* W" w( b; P
( v& [/ a2 [. ~# t: L  n  图 33 ~3 C/ T  g0 @% L. S
  (2)点击运行代码。
2 q  |# \& ]* e" a  `& H" Q2 t/ b7 c6 l% T6 E! E- H+ g+ q  }: m8 s

! s/ Z2 f4 u* i& ?5 U7 [" M  图 4
' p( G* w) o9 |+ @  完成之后,触摸一次触摸弹簧,串口调试助手就打印出一条信息,如下图所示。
- L: f: z) s; g  ]+ @6 n" j; H$ P* S$ M4 A
  
0 [8 N9 G' b3 _! `9 J  图 5
7 O) i+ p) Z% i/ x5 Q) A3 @5 Q. [' F6 F/ j! l! G' J# ?
# E& p4 g% `  K8 w( R0 b

$ k+ G) x* `5 o0 q0 M文件下载请点击: 5_(100%开源)蓝牙心率防水运动手环_电容触摸.pdf (645.65 KB, 下载次数: 0)
4 ]. z4 V( S6 x: v
: a% }7 y) t) n) R) C+ D1 U
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-7-25 20:57 , Processed in 0.140625 second(s), 27 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表