|
開(kāi)源 藍牙心率防水運動(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
文件下載請點(diǎn)擊:
5_(100%開(kāi)源)藍牙心率防水運動(dòng)手環(huán)_電容觸摸.pdf
(645.65 KB)
2022-8-25 15:26 上傳
點(diǎn)擊文件名下載附件
下載積分: 積分 -1
|
|