新手上路
- 积分
- 34
- 金钱
- 34
- 注册时间
- 2022-3-13
- 在线时间
- 11 小时
|
5金钱
本帖最后由 wppaiqiqi 于 2023-5-24 09:36 编辑
触摸屏实验中:
触摸设备都正常,上报正常,如下所示:
但是在实验过程中,写完IIC需要对IIC进行测试的时候,就利用ft5406的 FT5x06_DEVICE_MODE_REG 和 FT5426_IDG_MODE_REG进行读写测试代码如下所示:
寄存器地址:
#define FT5X06_TD_STATUS_REG 0X02 /* 状态寄存器地址 */
#define FT5x06_DEVICE_MODE_REG 0X00 /* 模式寄存器 */
首先使用,自己写的读写函数进行了测试:
程序如下:
reg_data = 0x00;
ft5406_write_regs(dev->client ,FT5x06_DEVICE_MODE_REG , ®_data ,1);
// /* 初始化中断模式寄存器 - 0xA4 */
reg_data = 0x01;
ft5406_write_regs(dev->client ,FT5426_IDG_MODE_REG , ®_data ,1);
ft5406_read_regs(dev->client, FT5x06_DEVICE_MODE_REG , &value1 , 1);
printk("FT5x06_DEVICE_MODE_REG = %#x\r\n",value1);
ft5406_read_regs(dev->client, FT5426_IDG_MODE_REG , &value2 , 1);
printk("FT5426_IDG_MODE_REG = %#x\r\n",value2);
结果如下所示:
之后我觉得可能使我的读写程序有问题,就换成API函数:
i2c_smbus_write_byte_data(dev->client,FT5x06_DEVICE_MODE_REG, 2);
i2c_smbus_write_byte_data(dev->client,FT5426_IDG_MODE_REG, 1);
value1 = i2c_smbus_read_byte_data(dev->client,FT5x06_DEVICE_MODE_REG);
value2 = i2c_smbus_read_byte_data(dev->client,FT5426_IDG_MODE_REG);
结果如下所示:
请各位大佬帮看一下,问题出在哪。
|
|