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

【RTT大賽作品連載】CH32V103 USBHID鍵盤(pán)鼠標(biāo)
CH32V103數(shù)據(jù)手冊(cè)
同系列比如103系列,CH32V103系列與CH32F103有哪些區(qū)別?
CH32V103基礎(chǔ)教程2-GPIO庫(kù)函數(shù)介紹
CH32V103基礎(chǔ)教程22-觸摸按鍵檢測(cè) (TKEY)
CH32V103基礎(chǔ)教程78-USART-空閑中斷
CH32V103基礎(chǔ)教程98-RTC-脈沖
RISC-V MCU應(yīng)用開(kāi)發(fā)教程之CH32V103

基于CH32V103系列MCU點(diǎn)亮LED

CH32V103系列MCU內(nèi)部FLASH讀寫(xiě)操作方式

評(píng)論