新建TSC STMTouch工程详解

/ 0评 / 0

之前一直是使用官方例程,这次来试试自己新建工程.使用STM32CubeMX,器件是STM32F072RBT6,当然,我们使用芯片创建向导来做,这样更容易熟悉配置.
第一步,新建工程(可见器件是128K/16K,103的C8T6版本才64K ROM呢.):

第二步,展开系统配置,开启调试功能(WAKEUP引脚真心多啊.).

第三步,查找TSC用到的引脚,如下.

第四步,接电容的是Sample引脚,接滑条是Sensor引脚,所以如下配置.

第五步,配置一下时钟,让系统,HCLK走在48MHz,目的是为了提高系统速度而已.

第六步,配置TSC,其中Maximum Count Value其实是采样次数超时的数值,一般8191就够,我们采样到的结果一般都在这个以下.

第七步,开启TSC中断.

第八步,生成工程.

第九步,尝试编译没什么问题.

第十步,可见现在没有TSC库,把TSC库复制到工程中.

第十一步,把TSC内容添加进Keil工程.

第十二步,文件结构如图,确定没添加多文件或者缺少文件.

第十三步,添加Keil的包含路径.

第十四步,复制官方文件中的tsl_user.h,tsl_conf.h,以及tsl_user.c文件.

第十五步,打开tsl_conf.h文件.根据实际情况修改,我们是官方文件,可以不修改.但是为了提高精度,我把这个改一下.

第十六步,添加关于TSL的Include.

第十七步,初始化TSL函数.

第十八步,SysTick内添加一个调用.

第十九步,添加头文件到it文件.

第二十步,因为默认HAL_TSC_ConvCpltCallback是空的,这是不对的,所以,我们改成我们采集逻辑,在main中新建同名函数即可.因为原始函数是weak的.

第二十一步,写入实际操作代码.

第二十二步,第187行中的冲突,主要是传入参数跟全局的冲突了,屏蔽一下全局的,给全局的传入改个名字.

第二十三步,导出idx_bank.

第二十四步,编译下载测试,完成.

观察MAP文件,可知.TSL占用如下.

可知占用RAM在124Byte左右,非常节省,只相当于31个int变量哦.

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注