該模塊是一個基于觸摸檢測IC(TTP223B)的電容式點動型觸摸開關模塊。常態下,模塊輸出低電平,模式為低功耗模式;當用手指觸摸相應位置時,模塊會輸出高電平,模式切換為快速模式;當持續12秒沒有觸摸時,模式又切換為低功耗模式。可以將模塊安裝在非金屬材料如塑料、玻璃的表面。也可以將薄薄的紙片(非金屬)覆蓋在模塊的表面,直到觸摸的位置正確,即可做成隱藏在墻壁、桌面等地方的按鍵。該模塊可以讓你免除常規按壓型鍵的煩惱。
01模塊來源
模塊實物展示:
資料下載鏈接:https://pan.baidu.com/s/1lBksfqx_dT4uIyABkHVm3Q
資料提取碼:hj2n
工作電壓:2.4-5.5V
工作電流:2.5uA~9uA
模塊尺寸:35x29 mm
最快響應時間:100Ms
控制方式:GOIO
以上信息見廠家資料文件
03移植過程
我們的目標是將例程移植至CW32F030C8T6開發板上【實現添加指紋、刪除指紋和搜索指紋的功能】。首先要獲取資料,查看數據手冊應如何實現讀取數據,再移植至我們的工程。
3.1查看資料
主要就是使用4個GPIO監控模塊的OUT1~4的輸出情況,那個OUT輸出則說明那個對應模塊的區域被觸摸。
3.2引腳選擇
接線表
3.3移植至工程
移植步驟中的導入.c和.h文件與【CW32模塊使用】DHT11溫濕度傳感器相同,只是將.c和.h文件更改為bsp_touchkey.c與bsp_touchkey.h。這里不再過多講述,移植完成后面修改相關代碼。
在文件bsp_touchkey.c中,編寫如下代碼。
/* * Change Logs: * Date Author Notes * 2024-06-20 LCKFB-LP first version */ #include "bsp_touchkey.h" /****************************************************************** * 函 數 名 稱:TTP224_GPIO_Init * 函 數 說 明:對電容式觸摸芯片TTP224進行初始化 * 函 數 形 參:無 * 函 數 返 回:無 * 作 者:LC * 備 注:無 ******************************************************************/ void TTP224_GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStruct; // GPIO初始化結構體 RCC_TTP_ENABLE(); // 使能GPIO時鐘 GPIO_InitStruct.Pins = GPIO_IN1| // GPIO引腳 GPIO_IN2| GPIO_IN3| GPIO_IN4; GPIO_InitStruct.Mode = GPIO_MODE_INPUT_PULLDOWN; // 下拉輸入 GPIO_InitStruct.Speed = GPIO_SPEED_HIGH; // 輸出速度高 GPIO_Init(PORT_TTP, &GPIO_InitStruct); // 初始化 } /****************************************************************** * 函 數 名 稱:Key_IN1_Scanf * 函 數 說 明:返回觸摸鍵1引腳電平狀態 * 函 數 形 參:無 * 函 數 返 回:0=未檢測到有觸摸 1=檢測到觸摸 * 作 者:LC * 備 注:無 ******************************************************************/ char Key_IN1_Scanf(void) { return KEY_IN1; } /****************************************************************** * 函 數 名 稱:Key_IN2_Scanf * 函 數 說 明:返回觸摸鍵2引腳電平狀態 * 函 數 形 參:無 * 函 數 返 回:0=未檢測到有觸摸 1=檢測到觸摸 * 作 者:LC * 備 注:無 ******************************************************************/ char Key_IN2_Scanf(void) { return KEY_IN2; } /****************************************************************** * 函 數 名 稱:Key_IN3_Scanf * 函 數 說 明:返回觸摸鍵3引腳電平狀態 * 函 數 形 參:無 * 函 數 返 回:0=未檢測到有觸摸 1=檢測到觸摸 * 作 者:LC * 備 注:無 ******************************************************************/ char Key_IN3_Scanf(void) { return KEY_IN3; } /****************************************************************** * 函 數 名 稱:Key_IN4_Scanf * 函 數 說 明:返回觸摸鍵4引腳電平狀態 * 函 數 形 參:無 * 函 數 返 回:0=未檢測到有觸摸 1=檢測到觸摸 * 作 者:LC * 備 注:無 ******************************************************************/ char Key_IN4_Scanf(void) { return KEY_IN4; }
在文件bsp_touchkey.h中,編寫如下代碼。
/* * Change Logs: * Date Author Notes * 2024-06-20 LCKFB-LP first version */ #ifndef _BSP_TOUCHKEY_H_ #define _BSP_TOUCHKEY_H_ #include "board.h" #define RCC_TTP_ENABLE() __RCC_GPIOA_CLK_ENABLE() #define PORT_TTP CW_GPIOA #define GPIO_IN1 GPIO_PIN_1 #define GPIO_IN2 GPIO_PIN_2 #define GPIO_IN3 GPIO_PIN_3 #define GPIO_IN4 GPIO_PIN_4 #define KEY_IN1 GPIO_ReadPin(PORT_TTP, GPIO_IN1) #define KEY_IN2 GPIO_ReadPin(PORT_TTP, GPIO_IN2) #define KEY_IN3 GPIO_ReadPin(PORT_TTP, GPIO_IN3) #define KEY_IN4 GPIO_ReadPin(PORT_TTP, GPIO_IN4) void TTP224_GPIO_Init(void);//引腳初始化 char Key_IN1_Scanf(void);//觸摸按鍵1的輸入狀態 char Key_IN2_Scanf(void);//觸摸按鍵2的輸入狀態 char Key_IN3_Scanf(void);//觸摸按鍵3的輸入狀態 char Key_IN4_Scanf(void);//觸摸按鍵4的輸入狀態 #endif
04移植驗證
在自己工程中的main主函數中,編寫如下。
/* * Change Logs: * Date Author Notes * 2024-06-20 LCKFB-LP first version */ #include "board.h" #include "stdio.h" #include "bsp_uart.h" #include "bsp_touchkey.h" int32_t main(void) { board_init(); // 開發板初始化 uart1_init(115200); // 串口1波特率115200 TTP224_GPIO_Init(); printf("ttp224 demo startrn"); while(1) { if(Key_IN1_Scanf() == 1) { printf("[1]-Touch!rn"); while(Key_IN1_Scanf() == 1); // 等待松開 } if(Key_IN2_Scanf() == 1) { printf("[2]-Touch!rn"); while(Key_IN2_Scanf() == 1); // 等待松開 } if(Key_IN3_Scanf() == 1) { printf("[3]-Touch!rn"); while(Key_IN3_Scanf() == 1); // 等待松開 } if(Key_IN4_Scanf() == 1) { printf("[4]-Touch!rn"); while(Key_IN4_Scanf() == 1); // 等待松開 } delay_ms(200); } }
移植現象:觸摸那個區域就打印那個區域被觸摸。
模塊移植成功案例代碼:
鏈接:https://pan.baidu.com/s/166WcF1ArFv-DnEUmhNz5xA?pwd=LCKF
提取碼:LCKF
審核編輯 黃宇
-
傳感器
+關注
關注
2550文章
51035瀏覽量
753053 -
觸摸傳感器
+關注
關注
0文章
122瀏覽量
23060 -
CW32
+關注
關注
1文章
203瀏覽量
626
發布評論請先 登錄
相關推薦
評論