電容觸摸 藍牙心率防水運動(dòng)手環(huán) ——智能穿戴開(kāi)發(fā)系列 1相關(guān)簡(jiǎn)介 本次章節,我們將使用到 DA14580 的外部中斷,通過(guò)觸摸手環(huán)主板上面的小彈簧,觸發(fā)中斷。 DA14580 內部有嵌套中斷向量控制器( NVIC,Nested Vectored Interrupt Controller),支持 24 個(gè)中斷,能夠中斷配置與處理異常代碼。當發(fā)生一個(gè)中斷請 求時(shí),自動(dòng)執行對應的中斷函數,不需要軟件確定異常向量。中斷可以有 4 個(gè)不同的可編程的優(yōu)先級,NVIC 自動(dòng)處理嵌套中斷。對于安全關(guān)鍵系統,又不可屏蔽中斷(NMI,Non maskable interrupt)輸入。 DA14580 內部還有一個(gè)鍵盤(pán)控制器,可以用于延時(shí) GPIO 信號進(jìn)入的時(shí)間?梢詸z測所有的 I/O 口的電平變化。當監測信號時(shí),可以產(chǎn)生中斷(KEYBR_IRQ)。同時(shí),另外有 5 個(gè)中斷(GPIOn_IRQ)可以被 GPIO 口觸發(fā)。 2硬件設計 下面的就是本次使用的觸摸按鍵,采用的是 RH6015,中斷引腳連接到我們DA14850 的 P27 腳。 ![]() 圖 1 RH6015 是一款內置穩壓模塊的單通道電容式觸摸感應控制開(kāi)關(guān) IC,可以替代傳統的機械式開(kāi)關(guān)。當我們觸摸到 RH1615 第三引腳前的觸摸電容時(shí),第一引腳會(huì )由高電平變成低電平。 3軟件設計 本次軟件,將完觸摸一次按鍵,打印一次累計按鍵次數的現象。 整個(gè)實(shí)驗代碼,將使用到兩個(gè)部分:串口和外部中斷。關(guān)于串口的初始化配置,以及串口打印的相關(guān)函數,可以參考前面的章節,本章節只介紹外部中斷的相關(guān)代碼。 要使用外部中斷,就需要一下幾個(gè)流程: (1)配置要使用的 IO 口。 GPIO_ConfigurePin(BUTTON_PORT, BUTTON_PIN1, INPUT, PID_GPIO, false); 這里將 DA14580 的 P27 管腳設置為輸入。 (2)注冊中斷回調函數。 GPIO_RegisterCallback(GPIO0_IRQn, button1_int_handler); 這個(gè)注冊中斷回調函數有兩個(gè)參數, 第一個(gè)參數是外部中斷編號, 可以填寫(xiě)GPIO0_IRQn、GPIO1_IRQn、GPIO2_IRQn、GPIO3_IRQn 和 GPIO4_IRQn。第二個(gè)是回調函數的指針。 (3)使能外部中斷。 GPIO_EnableIRQ( BUTTON_PORT, BUTTON_PIN1, GPIO0_IRQn, 1, 1, 10 ); 完成以上 3 步之后,每當手觸摸到觸摸彈簧,代碼就會(huì )運行到回調函數 button1_int_handler 之中。 void button1_int_handler(void) { static unsigned char button_count=0; button_count++; printf_string("\r\n Number of key:"); printf_byte(button_count); } 在中斷函數 button1_int_handle ( ) 中, 首先定義了一個(gè)靜態(tài)變量 button_count,用于記錄按鍵次數,進(jìn)入一次外部中斷,就將變量button_count 加 1,然后答應出換行符以及字符串 Number of key:,最后就打印出 button_count 的值。 4實(shí)驗現象 首先,插好 Jlink 和 USB 轉串口,然后打開(kāi)打開(kāi)串口調試助手。 (1)選擇串口號,我們圖中是 COM1,這個(gè)根據實(shí)際情況選擇。 (2)配置串口參數,波特率為 115200,數據位 8,停止位 1,沒(méi)有校驗位和控制流,與下圖一致。 (3)點(diǎn)擊打開(kāi)串口。 ![]() 圖 2 配置完串口之后,打開(kāi)我們提供的代碼。 (1)點(diǎn)擊仿真按鍵。 ![]() 圖 3 (2)點(diǎn)擊運行代碼。 ![]() 圖 4 完成之后,觸摸一次觸摸彈簧,串口調試助手就打印出一條信息,如下圖所示。 ![]() 圖 5 配套資料:https://www.fengke.club/GeekMart/su_fkZyGYgrp.jsp 配套視頻:https://www.fengke.club/GeekMart/su_fTSgUL3y3.jsp 套件地址:http://shop115904315.taobao.com 文件下載請點(diǎn)擊: ![]() |