OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5303|回复: 5

4.3寸电容屏的IIC触屏部分在ucosiii+ucgui的移植问题

[复制链接]

15

主题

98

帖子

0

精华

初级会员

Rank: 2

积分
179
金钱
179
注册时间
2013-11-11
在线时间
0 小时
发表于 2014-10-13 15:01:29 | 显示全部楼层 |阅读模式
5金钱
战舰+战舰4.3寸电容屏
ucosiii3.03+ucgui3.98

移植的时候电容屏的触摸功能移植好了以后刷屏特别卡,感觉是模拟iic造成的,延时函数是空耗cpu的while(i--)这样的
没有用原子哥的滴答定时器实现(不会在ucosiii下实现)

那么问题来了,原子哥可以用spi驱动吗?为什么当时不用spi驱动?spi可比IIC稳定多了
我被stm32的IIC使用问题折磨好几次了,硬件IIC不能用

最佳答案

查看完整内容[请看2#楼]

电容触摸屏清一色都是用IIC,没人用SPI。。。。 所以,你只能考虑其他方法了,用硬件IIC也一样啊。 还不是得等待数据传输完成么?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-10-13 15:01:30 | 显示全部楼层
电容触摸屏清一色都是用IIC,没人用SPI。。。。
所以,你只能考虑其他方法了,用硬件IIC也一样啊。
还不是得等待数据传输完成么?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

15

主题

98

帖子

0

精华

初级会员

Rank: 2

积分
179
金钱
179
注册时间
2013-11-11
在线时间
0 小时
 楼主| 发表于 2014-10-16 14:39:21 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
我又回头看了ucosiii的书和程序,认真做了思考,发现是这样的:
在ucosiii下,一共跑了这样几个主要的任务(按优先级排列):LED闪烁任务   电容触摸屏坐标读取任务GUI_TOUCH_Exec();  UCGUI刷屏任务

我之前没加触摸屏任务的时候刷屏速度还是可以的,问题肯定出在触摸屏这里
我读了  GUI_TOUCH_Exec();  里面调用了GUI_TOUCH_X_MeasureX(void)和GUI_TOUCH_X_MeasureY(void)
在这两个ucgui提供的函数里每读取一个坐标值都要读取10次进行排序然后取中间四个值平均(我怀疑是不是10次排序有点多余)
由于IIC总线调用大量延时,而且这个 任务优先级高,所以读取触摸屏占CPU时间过长造成刷屏速度特别慢

原子哥我想问我该怎样解决这个问题?我仔细阅读了你的延时函数,延时精度高,但是禁止了调度也是占着cpu不放。
我有些搞不懂该怎么进行下去了,帮帮我
回复

使用道具 举报

15

主题

98

帖子

0

精华

初级会员

Rank: 2

积分
179
金钱
179
注册时间
2013-11-11
在线时间
0 小时
 楼主| 发表于 2014-10-16 14:40:56 | 显示全部楼层
贴一下读取坐标的程序:

u16 TPReadX(void)

u16 x=0;
u8 xbuf[2];
OTT2001A_RD_Reg(OTT_TP1_REG,xbuf,2);
x=(((u16)xbuf[0]<<8)+xbuf[1])*OTT_SCAL_Y;
return (x);
}
u16 TPReadY(void)

u16 y=0;
u8 ybuf[2];
OTT2001A_RD_Reg(OTT_TP1_REGY,ybuf,2);
y=(((u16)ybuf[0]<<8)+ybuf[1])*OTT_SCAL_X;
return (y);
}
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-10-16 23:04:12 | 显示全部楼层
回复【3楼】蘑菇:
---------------------------------
电容屏数据,读一次就够了
不会要滤波什么的。。。
读到即结果。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

6

主题

104

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
436
金钱
436
注册时间
2015-12-11
在线时间
53 小时
发表于 2016-8-12 09:30:16 | 显示全部楼层
请问楼主的这个问题解决了吗?我也遇到了同样的问题,希望楼主能分享个解决源码,感激不尽!
Try again and there is nothing left to say.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-8 20:23

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表