分享电容触摸屏FT6236驱动程序

2019-07-21 04:14发布

来论坛索取了很多资料,一直没分享过,今天分享一个测试好了的程序。借鉴了原子哥的FT5206和论坛其他大虾的程序,分享给有需要的人吧。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
20条回答
695735073
1楼-- · 2019-07-22 22:11
看不懂
后荫榆枫
2楼-- · 2019-07-22 23:05
本帖最后由 后荫榆枫 于 2016-10-1 13:31 编辑

请问楼主,触摸一下屏幕,会响应多次,这个怎么解决?我看FT6236的寄存器没有记录上次触摸状态,读寄存器0x02,只返回0x01或者0xFF
chevyhu
3楼-- · 2019-07-23 03:58
 精彩回答 2  元偷偷看……
无帝老三
4楼-- · 2019-07-23 07:54
哥们,I2C读写地址为啥是0x70 0x71啊?在数据手册里没找到啊?现在用FT6336,配置后触摸不成功
无帝老三
5楼-- · 2019-07-23 09:56
//从FT6236读出一次数据
//reg:起始寄存器地址
//buf:数据缓缓存区
//len:读数据长度                          
void FT6236_RD_Reg(u16 reg,u8 *buf,u8 len)
{
        u8 i;
         FT6236_Start();        
         FT6236_WrOneByte(FT_CMD_WR);           //发送写命令         
        FT6236_CheckAck();                                                                                                               
         FT6236_WrOneByte(reg&0XFF);           //发送低8位地址
        FT6236_CheckAck();  
         FT6236_Start();                     
        FT6236_WrOneByte(FT_CMD_RD);           //发送读命令                  
        FT6236_CheckAck();         
        for(i=0;i<len;i++)
        {           
                *buf++ = FT6236_RdOneByte();                //读入1B数据到接收数据缓冲区中
                FT6236_McuACK();                                        //发送应答位         
        }
        FT6236_McuNACK();                                                //n个字节读完,发送非应答位
    FT6236_Stop();                                        //产生一个停止条件         
}
这个读函数存在一个深坑,读到最后一个字节后,理论上应该直接发NoAck,但是这个程序却先发了一个Ack,再发送NoAck,这样会出现问题的。
以交易为生
6楼-- · 2019-07-23 12:58
 精彩回答 2  元偷偷看……

一周热门 更多>