新手上路
- 积分
- 30
- 金钱
- 30
- 注册时间
- 2020-11-7
- 在线时间
- 5 小时
|
1金钱
实验内容:参见如下的链接:(61条消息) STM32 HAL 硬件SPI XPT2046_xiaguangbo的博客-CSDN博客_xpt2046 硬件spi
问题现象:连续扫描读取(在主函数的while1中不断扫描)没有问题,但是在PEN的中断里面读取会有问题(或者先检测PEN根据PEN状态判断要不要读取),就是如果前后两次读取的时间间隔较久远,PEN引脚的电平就不会跳变了(感觉就跟XPT2046内部逻辑崩了一样)。
个人猜测:参看原子的源码发现在每次读取转换值的过程中,在发送完读命令后有一个单独的时钟周期用于消除XPT2046的BUSY状态,而用硬件SPI无法进行这个操作,如果发送完读命令延时一段时间直接读16位,读出来的数据右移3位才是正常的数据,如果右移4位会造成读取的数据为正常数据的1/2,这也验证了消除BUSY的时钟周期是必须的,而且硬件SPI的方式直接把他当做数据最高位读出来了。
求问各位大神有没有什么思路,解决硬件SPI的这个问题,我试过加大延时,但是没有用,不太想用模拟SPI哈哈哈
|
|