资讯详情

RISC-V MCU应用教程之触摸按键

CH32V以青稞为基础的103系列V3A以处理器为核心的32位通用处理器MCU,基于处理器RISC-V设计开源指令集。时钟安全机制集成在电影中,多级电源管理DMA控制器。这个系列有一条路USB2.0主机/设备接口,多通道12位ADC转换模块,多通道TouchKey、多组定时器,多路IIC/USART/SPI外设资源丰富,如接口。

使用本章教程CH32V103开发板触摸按钮TK1.检测触摸按钮,并通过串口调试助手打印显示检测信息。

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应用手册。

本章教程所用资源均为开发板内部资源,无需硬件设计。

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本文件主要打印输出函数初始化和触摸按钮检测计值。

将编译程序下载到开发板并复位,串口打印如下:

触摸手指触摸按钮后,串口打印的具体情况如下:

标签: 1250v电容器70v电容器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台