簡介
CH32V103系列是以青稞V3A處理器為核心的32位通用MCU,該處理器是基于RISC-V開源指令集設計。片上集成了時鐘安全機制、多級電源管理、通用DMA控制器。此系列具有1路USB2.0主機/設備接口、多通道12位ADC轉換模塊、多通道TouchKey、多組定時器、多路IIC/USART/SPI接口等豐富的外設資源。
本章教程使用CH32V103開發板的觸摸按鍵TK1進行觸摸按鍵檢測,并將檢測信息通過串口調試助手打印顯示。
1、TKEY簡介及相關函數介紹
1、TKEY_V 開啟
TKEY_V單元檢測內部復用了ADC模塊的通道選擇及部分寄存器地址,所用使用 TKEY_V功能需要開啟ADC模塊(ADON=1),并打開 ADC 時鐘以此來訪問相關寄存器。然后將TKEY_V_CTLR(ADC_CTLR1)寄存器的TKENABLE 位置1,打開TKEY_V 單元功能。
注:因為共用了采樣通道選擇,所以ADC和TKEY_V檢測功能不能同時使用。
2、工作原理
一旦開啟了TKEY_V功能,硬件內部將自動進行周期性地采樣計數轉換過程,并在完成一次轉換后,通知應用代碼在固定時間(tDR)內取走數據,開啟下一次轉換,此循環過程在TKEY_V開啟下是自動進行的。如圖所示,硬件內部會提供了用來計數的脈沖源TKCLK,應用軟件選擇當前硬件計數周期為500us或 1ms,當內部完成周期內的計數統計后,會產生 TKIF 標志通知應用代碼讀取本次轉換數值,應用代碼需要在最長43us(tDR)內取走數據,否則下一輪的轉換將影響數據寄存器的內容。
關于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標志需要軟件寫1清0。如果置位了TKIEN,在TKIF=1時會同步觸發TKEY_V(ADC)中斷,進入ADC中斷服務函數。
6)重復 3-5 步驟,獲取下一次計數值。3-4為可選配置。
根據上述操作步驟,編寫程序如下:
tkey.h文件
tkey.h文件主要進行相關定義及函數聲明;
tkey.c文件
tkey.c文件主要進行相關初始化配置以及獲取觸摸按鍵檢測值
main.c文件
main.c文件主要進行函數初始化以及觸摸按鍵檢測計數值的打印輸出。
4、下載驗證
將編譯好的程序下載到開發板并復位,串口打印具體情況如下:
手指觸摸觸摸按鍵之后,串口打印具體情況如下:
-
mcu
+關注
關注
146文章
17874瀏覽量
361150 -
開發板
+關注
關注
25文章
5565瀏覽量
102743 -
觸摸按鍵
+關注
關注
7文章
123瀏覽量
67965 -
RISC-V
+關注
關注
46文章
2507瀏覽量
48345 -
CH32V103
+關注
關注
1文章
13瀏覽量
1193 -
ch32
+關注
關注
0文章
73瀏覽量
868
發布評論請先 登錄
【RTT大賽作品連載】CH32V103開發板資料及上電首測

【RTT大賽作品連載】CH32V103 USBHID鍵盤鼠標
CH32V103數據手冊
CH32V103基礎教程2-GPIO庫函數介紹
CH32V103基礎教程78-USART-空閑中斷
CH32V103基礎教程98-RTC-脈沖
RISC-V MCU應用開發教程之CH32V103

評論