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