簡介
CH32V103系列是以青稞V3A處理器為核心的32位通用MCU,該處理器是基于RISC-V開源指令集設計。片上集成了時鐘安全機制、多級電源管理、通用DMA控制器。此系列具有1路USB2.0主機/設備接口、多通道12位ADC轉(zhuǎn)換模塊、多通道TouchKey、多組定時器、多路IIC/USART/SPI接口等豐富的外設資源。
本章教程使用CH32V103開發(fā)板的觸摸按鍵TK1進行觸摸按鍵檢測,并將檢測信息通過串口調(diào)試助手打印顯示。
1、TKEY簡介及相關函數(shù)介紹
1、TKEY_V 開啟
TKEY_V單元檢測內(nèi)部復用了ADC模塊的通道選擇及部分寄存器地址,所用使用 TKEY_V功能需要開啟ADC模塊(ADON=1),并打開 ADC 時鐘以此來訪問相關寄存器。然后將TKEY_V_CTLR(ADC_CTLR1)寄存器的TKENABLE 位置1,打開TKEY_V 單元功能。
注:因為共用了采樣通道選擇,所以ADC和TKEY_V檢測功能不能同時使用。
2、工作原理
一旦開啟了TKEY_V功能,硬件內(nèi)部將自動進行周期性地采樣計數(shù)轉(zhuǎn)換過程,并在完成一次轉(zhuǎn)換后,通知應用代碼在固定時間(tDR)內(nèi)取走數(shù)據(jù),開啟下一次轉(zhuǎn)換,此循環(huán)過程在TKEY_V開啟下是自動進行的。如圖所示,硬件內(nèi)部會提供了用來計數(shù)的脈沖源TKCLK,應用軟件選擇當前硬件計數(shù)周期為500us或 1ms,當內(nèi)部完成周期內(nèi)的計數(shù)統(tǒng)計后,會產(chǎn)生 TKIF 標志通知應用代碼讀取本次轉(zhuǎn)換數(shù)值,應用代碼需要在最長43us(tDR)內(nèi)取走數(shù)據(jù),否則下一輪的轉(zhuǎn)換將影響數(shù)據(jù)寄存器的內(nèi)容。
關于CH32V103觸摸按鍵檢測具體信息,可參考CH32V103應用手冊。
2、硬件設計
本章教程所用資源均為開發(fā)板內(nèi)部資源,無需進行硬件設計。
3、軟件設計
TKEY_V通過電容改變影響內(nèi)部振蕩頻率變化的原理,以統(tǒng)計計數(shù)值大小檢測觸摸按鍵。具體操作流程如下:
1)開啟RCC模塊的ADCEN位,打開TKEY_V寄存器操作權(quán)限。
2)開啟TKEY_V功能,置ACON位為1,喚醒ADC模塊。將ADC_CTLR1寄存器的TKENABLE位置1,打開TKEY_V單元。
3)配置采樣周期,操作TKEY_V_CTLR寄存器的CCSEL[2:0]和TKCPS位,選擇500us 或1ms周期。單元內(nèi)部是以AHB時鐘計時,所以需要CCSEL[2:0]域與當前 AHB 頻率相等,否則會導致采樣周期偏大或偏小。
4)配置采樣通道,設置TKEY_V_CHANNEL寄存器,此寄存器的寫操作會觸發(fā)新的一輪周期開始。
5)等待TKIF標志置1,表示完成一次轉(zhuǎn)換,可以讀取TKEY_V_SDR寄存器中的 TKDR[13:0]計數(shù)值。TKSTA指示當前TKDR[13:0]域計數(shù)值是否有效。TKIF標志需要軟件寫1清0。如果置位了TKIEN,在TKIF=1時會同步觸發(fā)TKEY_V(ADC)中斷,進入ADC中斷服務函數(shù)。
6)重復 3-5 步驟,獲取下一次計數(shù)值。3-4為可選配置。
根據(jù)上述操作步驟,編寫程序如下:
tkey.h文件
tkey.h文件主要進行相關定義及函數(shù)聲明;
tkey.c文件
tkey.c文件主要進行相關初始化配置以及獲取觸摸按鍵檢測值
main.c文件
main.c文件主要進行函數(shù)初始化以及觸摸按鍵檢測計數(shù)值的打印輸出。
4、下載驗證
將編譯好的程序下載到開發(fā)板并復位,串口打印具體情況如下:
手指觸摸觸摸按鍵之后,串口打印具體情況如下:
-
mcu
+關注
關注
146文章
17201瀏覽量
351931 -
開發(fā)板
+關注
關注
25文章
5093瀏覽量
97803 -
觸摸按鍵
+關注
關注
7文章
121瀏覽量
67485 -
RISC-V
+關注
關注
45文章
2307瀏覽量
46297 -
CH32V103
+關注
關注
1文章
13瀏覽量
1026 -
ch32
+關注
關注
0文章
73瀏覽量
663
發(fā)布評論請先 登錄
相關推薦
評論