关于stm32的PS2鼠标驱动的修改

2019-07-20 15:32发布

           两天前,我的屏幕终于到了,于是这两天抓紧的把驱动写好,将STemwin移植到我的407板子上,昨晚完成了GUI的移植工作,把官方的demo跑了起来,之前在F1上移植过一次emwin,但是那次采取的是emwin自带的驱动的方式移植的,这次在原子哥开发指南的帮助下,自己写了一整套优化了的LCD驱动。
       现在先来说一下我在移植过程中遇到的关于LCD的一些问题吧,我用的LCD驱动行芯片的型号是R61408,首先是LCD的显示方向的问题,按道理来说,切换八个方向是没有任何问题的。但是我在切换到我要使用的显示方向时,屏幕最右侧有一部分没显示,弄了很久,百度了一下才知道这和LCD的驱动芯片支持的最大分辨率有关,R61408最大支持的分辨率宽度是864的,我的屏幕是tiky的800*480ips屏,于是我将x全部偏移64个像素,显示正常了。驱动优化得还算不错,刷屏速度达到1700万左右,这大概是因为我的FSMC设置的速度比较快。跑DEMO的时候海豚游动也是正常的。
       由于这块屏幕不带触屏,接下来我就把PS2 鼠标添加进来,参考了原子哥的指南,移植之后,鼠标跑起来不一会就会出现奇偶校验失败的问题,接下来鼠标的数据就乱了,改了一天没任何进展,最后看了《PS2技术参考手册》后发现PS2设备到主机通信是这样说的:
1) 检测时钟线电平,如果时钟线为低,则延时 50μs;
2) 检测判断时钟信号是否为高,为高,则向下执行,为低,则转到(1);
于是我将SCL的下降沿中断改为上升沿中断触发之后,鼠标奇迹般的好了,无论怎么移动都不会挂掉了。

      下面我将我的代码分享出来,用LCD驱动芯片是R61408,这个芯片不常见,用tiky那块屏的可以参考一下我的代码。
      
       参照原子哥的教程移植emwin还遇到一个问题,keil5的工程设置怎么找不到use fpu这个选项,是不是还要做其他工作。我的keil版本是5.15的。还请大家指教一下。
      

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。