《7(100%开源)蓝牙心率防水运动手环_电容触摸.docx》由会员分享,可在线阅读,更多相关《7(100%开源)蓝牙心率防水运动手环_电容触摸.docx(8页珍藏版)》请在第一文库网上搜索。
1、蓝牙心率防水运动手环电容触摸智能穿戴开发系列配套资料:https:/www.fengke.c1ub/GeekMart/su_fkZyGYgrp.jsp配套视频:https:/www.fengke.c1ub/GeekMart/su_fTSgU13y3.jsp电容触摸1相关简介本次章节,我们将使用到DA14580的外部中断,通过触摸手环主板上面的小弹簧,触发中断。DA14580内部有嵌套中断向量控制器(NVICzNestedVectoredInterruptContro11er),支持24个中断,能够中断配置与处理异常代码。当发生一个中断请求时,自动执行对应的中断函数,不需要软件确定异常向量。中断
2、可以有4个不同的可编程的优先级,NVIC自动处理嵌套中断。对于安全关键系统,又不可屏蔽中断(NM1Nonmaskab1einterrupt)输入。DA14580内部还有一个键盘控制器,可以用于延时GP1o信号进入的时间。可以检测所有的I/O口的电平变化。当监测信号时,可以产生中断(KEYBRRQ)。同时,另外有5个中断(GPIOnJRQ)可以被GPIO口触发。2硬件设计下面的就是本次使用的触摸按键,采用的是RH6015,中断引脚连接到我们DA14850的P27脚。(X7OWOGGNDVIiDcmn1BK1图1ORRH6015是一款内置稳压模块的单通道电容式触摸感应控制开关IC,可以替代传统的机
3、械式开关。当我们触摸到RH1615第三引脚前的触摸电容时,第一引脚会由高电平变成低电平。3软件设计本次软件,将完触摸一次按键,打印一次累计按键次数的现象。整个实验代码,将使用到两个部分:串口和外部中断。关于串口的初始化配置,以及串口打印的相关函数,可以参考前面的章节,本章节只介绍外部中断的相关代码。要使用外部中断,就需要一下几个流程:(I)配置要使用的IO口。GPIoqnfigUrePin(BUTToN_PORT,BTTON-PIN1,INPUT,PID_GPIO,fa1se);这里将DA14580的P27管脚设置为输入。注册中断回调函数。GPIO-RegisterCa11back(GPIOO
4、JRQn,button1_int_hand1er);这个注册中断回调函数有两个参数,第一个参数是外部中断编号,可以填写GPIOOJRQnGPIO1JRQnGPIO2RQn、GPI03JRQn和GP1O4RQno第二个是回调函数的指针。使能外部中断。GP1C1Enab1eIRQ(BUTTON_PORT,BUTToN_PIN1,GPIOOJRQnz1,1110);完成以上3步之后,每当手触摸到触摸弹簧,代码就会运行到回调函数button1_int_hand1er之中。voidbutton1_int_hand1er(void)staticunsignedcharbutto-count=0;butto
5、n_count+;printf_string(rnNumberofkey:);printf_byte(button_count);在中断函数button1_int_hand1e()中,首先定义了一个静态变量button_count,用于记录按键次数,进入一次外部中断,就将变量buttonount加1,然后答应出换行符以及字符串Numberofkey:,最后就打印出button,count的值。4实验现象首先,插好JIink和USB转串口,然后打开打开串口调试助手。O选择串口号,我们图中是COM1,这个根据实际情况选择。配置串口参数,波特率为115200,数据位8,停止位1,没有校验位和控制流,
6、与下图一致。点击打开串口。SSCOM3.2(作者:聂,嗜(J),S5http,Emai1:mcu521.X打开文件I反福115200SDTRRTS84时发送IIWUms次发送文件I保存窗口I清除窗口I厂HEX显示特据止验率位位位1厂HEX发送厂发送新行.None字符串输入框:IWWW.MCUS1CoM一扩展1PCB打样那家强?当然就是嘉立创!【官网】嘉方创PCB打样-SMT贴片一元器件商城一条龙服争打祥话加助睥粱雁婷的QQ:800。58315怀懂技术:品座椎茬:WiFi/GPrS/GPS安信可射频榄组】【点次里升级为SSeOM5.13版】可在W1nIo运行!I亦控制None旦ww.mcu1.c
7、orS:4RK)-IeOM111520Ob同CTS=ODSR=OR1图2配置完串口之后,打开我们提供的代码。(1)点击仿真按键。图3(2)点击运行代码。UE:手环总文档手环文档18060281507手环文档电钠S摸娃网电锁够按磴代码p9jPstsge3ppsPeriPheQ1Samp1.出I回1Fi1eEditViewProjectHashDebugPeriphera1sToo1sSVCSWindowHe1p三怎JGWOO.IRQn伊什poI叵画叵国工3,巨3Dm司国力Register-CoroDisassemb1yx20000AC2477034:(ROR1R20x200ACS0n2O8CXX
8、8OxOOOOOO以200OC15ONZoooOC加0x0000010x2000X54Oxffffffff0x20000AC4BS1C35:0x20000AC636:*min”PUSHsyscemeinit();F7FFFFDDB1.Wperph1nit();r2-r4,1rsysceminit(0x20000A84)ONFFFFFFFFOxffffffffOxffffffffOxffffffffOxffffffff0x200098000x200BFD0x20XKAC40x610000Banked!*SystenBInterna1IVodaThrgdStackHSPEJprojectRegis
9、tersCommandmain(void)SySteIn-inix();perph_nit();GPIO_ReaisterCa11back(GPIOOeIRQnrIn1uom二nJhamGPIO2Enab1eIRQ(BUTTON-PORT7BUTTONePIN1rGP1Iiwhi1e(1);dQCa11Stack1oca1sName1ocdtiorWdIueTypeVmain0x20000AC4inffaE1ong0x50003308=0x2e1OAD%1SP-RDWORD(0x20000000)$-RDWORD(0x20000004)内ASSIGNBreakDisab1eBreaJcEnab1eBxeakKi11IQca11Stack1oca1sI3MemorT1J.UNK/J图4完成之后,触摸一次触摸弹簧,串口调试助手就打印出一条信息,如下图所TKo图5