簡(jiǎn)介
CH32V103系列是以青稞V3A處理器為核心的32位通用MCU,該處理器是基于RISC-V開源指令集設(shè)計(jì)。片上集成了時(shí)鐘安全機(jī)制、多級(jí)電源管理、通用DMA控制器。此系列具有1路USB2.0主機(jī)/設(shè)備接口、多通道12位ADC轉(zhuǎn)換模塊、多通道TouchKey、多組定時(shí)器、多路IIC/USART/SPI接口等豐富的外設(shè)資源。
本章教程使用CH32V103開發(fā)板的觸摸按鍵TK1進(jìn)行觸摸按鍵檢測(cè),并將檢測(cè)信息通過串口調(diào)試助手打印顯示。
1、TKEY簡(jiǎn)介及相關(guān)函數(shù)介紹
1、TKEY_V 開啟
TKEY_V單元檢測(cè)內(nèi)部復(fù)用了ADC模塊的通道選擇及部分寄存器地址,所用使用 TKEY_V功能需要開啟ADC模塊(ADON=1),并打開 ADC 時(shí)鐘以此來訪問相關(guān)寄存器。然后將TKEY_V_CTLR(ADC_CTLR1)寄存器的TKENABLE 位置1,打開TKEY_V 單元功能。
注:因?yàn)楣灿昧瞬蓸油ǖ肋x擇,所以ADC和TKEY_V檢測(cè)功能不能同時(shí)使用。
2、工作原理
一旦開啟了TKEY_V功能,硬件內(nèi)部將自動(dòng)進(jìn)行周期性地采樣計(jì)數(shù)轉(zhuǎn)換過程,并在完成一次轉(zhuǎn)換后,通知應(yīng)用代碼在固定時(shí)間(tDR)內(nèi)取走數(shù)據(jù),開啟下一次轉(zhuǎn)換,此循環(huán)過程在TKEY_V開啟下是自動(dòng)進(jìn)行的。如圖所示,硬件內(nèi)部會(huì)提供了用來計(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ì)
本章教程所用資源均為開發(fā)板內(nèi)部資源,無需進(jìn)行硬件設(shè)計(jì)。
3、軟件設(shè)計(jì)
TKEY_V通過電容改變影響內(nèi)部振蕩頻率變化的原理,以統(tǒng)計(jì)計(jì)數(shù)值大小檢測(cè)觸摸按鍵。具體操作流程如下:
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時(shí)鐘計(jì)時(shí),所以需要CCSEL[2:0]域與當(dāng)前 AHB 頻率相等,否則會(huì)導(dǎo)致采樣周期偏大或偏小。
4)配置采樣通道,設(shè)置TKEY_V_CHANNEL寄存器,此寄存器的寫操作會(huì)觸發(fā)新的一輪周期開始。
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)志需要軟件寫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ù)上述操作步驟,編寫程序如下:
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)證
將編譯好的程序下載到開發(fā)板并復(fù)位,串口打印具體情況如下:
手指觸摸觸摸按鍵之后,串口打印具體情況如下:
-
mcu
+關(guān)注
關(guān)注
146文章
17981瀏覽量
366843 -
開發(fā)板
+關(guān)注
關(guān)注
25文章
5680瀏覽量
104707 -
觸摸按鍵
+關(guān)注
關(guān)注
7文章
124瀏覽量
68096 -
RISC-V
+關(guān)注
關(guān)注
46文章
2568瀏覽量
48821 -
CH32V103
+關(guān)注
關(guān)注
1文章
13瀏覽量
1239 -
ch32
+關(guān)注
關(guān)注
0文章
73瀏覽量
901
發(fā)布評(píng)論請(qǐng)先 登錄
【RTT大賽作品連載】CH32V103開發(fā)板資料及上電首測(cè)

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

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

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

評(píng)論