网上一直有人说STMTouch效率很低,我就来试试看.使用官方程序,设置一个IO,代表TSC高电平就是占用的系统时间.BSRR意思是Set RR,另一个就是RESET了.
void TSCx_EXTI_IRQHandler(void) { GPIOC->BSRR = GPIO_PIN_7; HAL_TSC_IRQHandler(&TscHandle); GPIOC->BRR = GPIO_PIN_7; }
无触摸状态下,1.53%的CPU使用.
连续采样情况下,占用1.686%的CPU,并没网上说的占了一半的时间那么夸张.
如果关掉接近传感,如图:
结果连续采样时候处理时间还延长了.
如果追求极致优化.把占用下降到1%以下,估计还是比较麻烦的.根据实际测试,无论使用何种编译方式,占用的ROM和RAM都差不多.大约都为5K ROM,128B RAM,如果上了操作系统,这样资源占用就可以忽略了,在有效中断的时候,才进入检测,否则不检测.最低优先级任务轮询等等,当普通按键就行.反正我猜测,极限差情况下,也不会超过2%占用.