1. 程式人生 > 其它 >RISC-V MCU應用教程之觸控按鍵

RISC-V MCU應用教程之觸控按鍵

簡介

CH32V103系列是以青稞V3A處理器為核心的32位通用MCU,該處理器是基於RISC-V開源指令集設計。片上集成了時鐘安全機制、多級電源管理、通用DMA控制器。此係列具有1路USB2.0主機/裝置介面、多通道12位ADC轉換模組、多通道TouchKey、多組定時器、多路IIC/USART/SPI介面等豐富的外設資源。

 

本章教程使用CH32V103開發板的觸控按鍵TK1進行觸控按鍵檢測,並將檢測資訊通過串列埠除錯助手列印顯示。

1TKEY簡介及相關函式介紹

1TKEY_V 開啟

TKEY_V單元檢測內部複用了ADC模組的通道選擇及部分暫存器地址,所用使用 TKEY_V功能需要開啟ADC模組(

ADON=1),並開啟 ADC 時鐘以此來訪問相關暫存器。然後將TKEY_V_CTLRADC_CTLR1)暫存器的TKENABLE 位置1,開啟TKEY_V 單元功能。

 

注:因為共用了取樣通道選擇,所以ADCTKEY_V檢測功能不能同時使用。

 

2、工作原理

一旦開啟了TKEY_V功能,硬體內部將自動進行週期性地取樣計數轉換過程,並在完成一次轉換後,通知應用程式碼在固定時間(tDR)內取走資料,開啟下一次轉換,此迴圈過程在TKEY_V開啟下是自動進行的。如圖所示,硬體內部會提供了用來計數的脈衝源TKCLK,應用軟體選擇當前硬體計數週期為500us1ms,當內部完成周期內的計數統計後,會產生

TKIF 標誌通知應用程式碼讀取本次轉換數值,應用程式碼需要在最長43ustDR)內取走資料,否則下一輪的轉換將影響資料暫存器的內容。

 

關於CH32V103觸控按鍵檢測具體資訊,可參考CH32V103應用手冊。

2、硬體設計

本章教程所用資源均為開發板內部資源,無需進行硬體設計。

 

3、軟體設計

TKEY_V通過電容改變影響內部振盪頻率變化的原理,以統計計數值大小檢測觸控按鍵。具體操作流程如下:

1)開啟RCC模組的ADCEN位,開啟TKEY_V暫存器操作許可權。

2)開啟TKEY_V功能,置ACON位為1,喚醒ADC模組。將ADC_CTLR1暫存器的TKENABLE位置1,開啟TKEY_V

單元。

3)配置取樣週期,操作TKEY_V_CTLR暫存器的CCSEL[2:0]TKCPS位,選擇500us 1ms週期。單元內部是以AHB時鐘計時,所以需要CCSEL[2:0]域與當前 AHB 頻率相等,否則會導致取樣週期偏大或偏小。

4)配置取樣通道,設定TKEY_V_CHANNEL暫存器,此暫存器的寫操作會觸發新的一輪週期開始。

5)等待TKIF標誌置1,表示完成一次轉換,可以讀取TKEY_V_SDR暫存器中的 TKDR[13:0]計數值。TKSTA指示當前TKDR[13:0]域計數值是否有效。TKIF標誌需要軟體寫10。如果置位了TKIEN,在TKIF=1時會同步觸發TKEY_VADC)中斷,進入ADC中斷服務函式。

6)重複 3-5 步驟,獲取下一次計數值。3-4為可選配置。

根據上述操作步驟,編寫程式如下:

tkey.h檔案

 

tkey.h檔案主要進行相關定義及函式宣告;

tkey.c檔案

 

tkey.c檔案主要進行相關初始化配置以及獲取觸控按鍵檢測值

main.c檔案

 

main.c檔案主要進行函式初始化以及觸控按鍵檢測計數值的列印輸出。

 

4、下載驗證

將編譯好的程式下載到開發板並復位,串列埠列印具體情況如下:

 

手指觸控觸控按鍵之後,串列埠列印具體情況如下:

 

 

 

搜尋

複製