本帖最后由 bestsolution001 于 2022-8-18 11:28 编辑
使用ESK32-30519 触摸按键更改显示AD数值ESK32-21001扩展版介绍 1.ESK32-21001是为了ESK32-30xxx系列Starter Kit所设计的进阶扩充底板。
链接的底部,会有一个该扩展版的使用手册,里面会有整个扩展版资源的介绍,原理图说明。
3.ESK32-21001具备以下的特性:
- RS232 连接器
- 一个唤醒按键,两个普通按键
- 触摸按键
- 三个 LED
- I 2C – 可兼容串行接口 EEPROM
- SPI – 可兼容串行接口 Flash
- SPI 和 EBI 扩展接口,用于 LCD 显示应用
- SD 卡插槽 – SPI 模式
- PWM 输出,用于蜂鸣器驱动
- 备份电源
- SWD-20P 调试接口
- 智能卡连接器
- CMOS 传感器连接器
- 多个接口包括 UART、I 2 C、SPI 和 GPIO 功能接口,用于连接不同的模块
- 音频输入包括麦克风和立体声插口
- 音频输出包括扬声器连接器和立体声插口
4.将核心板ESK32-30519与ESK32-21001整合。
ESK32-21001 ADC的使用
通过滑动电位器改变ADC通道采集的电压。选择驱动扩展板的滑动电位器,扩展板标识为”Potentiometer”。
2.截取扩展板与核心板连接部分的原理图如下
在编号29的位置上,PA6为采集滑动电位器的ADC功能的PIN脚。
3.滑动电位器的电路接法
4.从原理图中可以看出,ADC输入通道采集滑动电位器的对地电阻的电压。
5.根据HOLTEK提供的32位固件库中example下的文件夹,可以通过脚本直接生成例程。例程的功能是将采集到的AD值通过ESK32-30519的板 载仿真器的虚拟串口功能将数据发送到PC端的串口助手。例程路径为: .. \example\ADC\Continuous_Potentiometer\MDK_ARMv5。然后选择HT32F54253的工程。直接编译烧录即可。
使用USB线连接板载仿真器,打开PC端的串口助手,直接选择端口即可。连接方式如图9所示,例程在上传的数据样式如下图12所示。 注意,图9中红框中的跳帽需要接到左边,即丝印为DAP_Tx的那一边。这个功能为仿真器自带的一个虚拟串口功能。
通过一根USB完成仿真与串口通信的功能。在例程中需要实现一个串口的功能,具体的实现代码如下图10所示.
在mian初始化中调用RETARGET_Configuration即可配置好串口。只要在需要使用串口传输数据的地方使用printf函数即可将数据上传到PC端的串口助手。
数码管根据触控按键切换显示电压或AD值1.需要将采集ADC的代码整合到TouchKey中来。直接将例程中的函数与ADC中断复制到TouchKey的工程中来.
项目 | | 函数名称 | | 输入参数 | ADC端口(ADC0),ENABLE或DISABLE | 返回值 | | 说明 | |
项目 | | 函数名称 | | 输入参数 | ADC端口(ADC0),ENABLE或DISABLE | 返回值 | | 说明 | |
为了符合人的观测,还需要配置一个定时器来定时更新ADC采集的数据。选定为0.5s更新一次数码管显示的数值.
数码管的显示功能采用HT32F54253的外设功能LEDC.具体的使用方法见
ADC的值为一个0~4096的数值,使用数码管来显示一个4位数,则需要将原本的数值位拆分成 个位,十位,百位,千位这4个单独的数字再给到四位一体的数码管显示。 项目 | | 函数名称 | | 输入参数 | | 返回值 | | | 输入AD值,然后将AD值的个,十,百,千位的数字分解成单独的数字放入结构体返回。 |
触控按键使用一个函数来获取全部按键的状态。 项目 | | 函数名称 | | 输入参数 | | 返回值 | | 说明 | 返回一个32bit的数据,每一个bit的位代表对应位置的KEY的状态,0表示松开,1表示按下。 |
2.主要的程序实现说明如下
a.ADC相关函数使用到的#define,放置在ht32_board_config.h中
b.实现PAD1按下到松开之前,按键只成立一次。KeyCounter记录按下的次数。
c. 每隔0.5s更新此刻ADC采集到的数值,根据按键按下的次数是否为2的倍数来选择数码管显示的是AD值
或者是经过换算以后的电压值,电压值的单位为mV。
d.数码管显示刷新数据
至此,实现了使用触控按键来切换显示ADC的AD值或者电压值。将电压调至1.65V.实现的效果如下:
文章小结
这篇文章用了ESK-30519的三个功能:ADC,触控按键与LEDC。其中ADC功能是采集滑动变阻器的对地电压值,例程为.. \example\ADC\Continuous_Potentiometer\MDK_ARMv5路径下的工程。LEDC与触控功能的实现请参考 本次通过触控按键来改变数码管的显示内容,显示内容为ADC采集滑动变阻器的对地电压值或者AD值。最终的例程源码路径为 ..\ADC+TouchKey\example\TouchKey\TouchKey_LIB\MDK_ARMv5
|