由于项目中需要使用iic的当前位置读数据模式,但厂家sdk中并没有实现。那就只能自己动手了:

I2C_STATUS_ENUM DRV_I2C_SetupForRead(I2C_BUS_CTRL_T * pI2cCtrl, void(*end_cb)(I2C_STATUS_ENUM))
{
while(DRV_I2C_IsBusy());
DRV_I2C_Disable();
DRV_I2C_ResetStatus();

//gDrvI2Cctrl.MB.settings = (uint8_t)( I2C_SETTING_STANDARD | I2C_SETTING_READ | I2C_SETTING_RANDOM_READ | I2C_SETTING_SCL_SYNC);
gDrvI2Cctrl.MB.settings = (uint8_t)( I2C_SETTING_STANDARD | I2C_SETTING_READ | I2C_SETTING_SEQ_CUR_READ | I2C_SETTING_SCL_SYNC);

gDrvI2Cctrl.MB.length_byteh = (uint8_t)((pI2cCtrl->NumOfReg)>>8);
gDrvI2Cctrl.MB.length_bytel = (uint8_t) (pI2cCtrl->NumOfReg);
gDrvI2Cctrl.MB.contrl_byte1 = (uint8_t)((pI2cCtrl->DeviceAddr<<1)|I2C_READ_CMD_BIT);
gDrvI2Cctrl.MB.address = (uint8_t) (pI2cCtrl->RegAddr);
gDrvI2Cctrl.MB.data_area.Ctrl2 = (uint8_t)((pI2cCtrl->DeviceAddr<<1)|I2C_READ_CMD_BIT);

DRV_I2C_SetClockFreq(pI2cCtrl->FreqSel);
DRV_I2C_SetRepeat(pI2cCtrl->repeat);
DRV_I2C_SetTxSetting(&gDrvI2Cctrl.MB.settings);
DRV_I2C_SetRxBufAddr(pI2cCtrl->ValueAddr.Dst);

gDrvI2Cctrl.cb = end_cb;    
    DRV_I2C_Enable();

if(end_cb)
        return I2C_TRANSACTION_EXECUTING;

while(DRV_I2C_IsBusy());

return (DRV_I2C_GetStatus() & I2C_STATUS_MASK_ALLERROR)? \
I2C_TRANSACTION_FAILED: \
I2C_TRANSACTION_SUCCEEDED;

}

AB1601之iic驱动改造相关推荐

  1. Exynos4412 IIC总线驱动开发(二)—— IIC 驱动开发

    前面在Exynos4412 IIC总线驱动开发(一)-- IIC 基础概念及驱动架构分析 中学习了IIC驱动的架构,下面进入我们的驱动开发过程 首先看一张代码层次图,有助于我们的理解 上面这些代码的展 ...

  2. MSP430杂谈--AD7745硬件IIC驱动与模拟IIC驱动

    和上一篇AD7793类似,项目中也涉及到利用AD7745读取电容值,来测环境湿度.编写了基于MSP430的AD7745的硬件IIC驱动和模拟IIC驱动,分享给大家. AD7745硬件IIC驱动完整版下 ...

  3. IIC驱动0.96寸OLED屏幕显示(51单片机)

    这篇文章得用到IIC驱动,大家如果不会IIC通信,可以看这篇文章,也是我写的,是有关IIC通信的,有什么不理解的可以在看一下:https://blog.csdn.net/m0_58832575/art ...

  4. stm32的IIC驱动0.96OLED

    IIC原理介绍: IIC是一个总线的结构但不支持总线协议 OLED介绍: 一.0.96寸OLED屏幕介绍 本文采用的是4针的0.96寸OLED显示进行讲解,采用的是SPI协议,速度会比采用I2C协议的 ...

  5. Exynos4412 IIC总线驱动开发(一)—— IIC 基础概念及驱动架构分析 (iic驱动框架,i2c驱动框架)...

    转载于 : http://blog.csdn.net/zqixiao_09/article/details/50917655 关于Exynos4412 IIC 裸机开发请看 :Exynos4412 裸 ...

  6. linux下IIC驱动开发分析

    1.  IIC规范 IIC(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备.IIC总线产生于在80年代,最初为音频和 ...

  7. 基于Stm32f103硬件iic驱动LM75A温度传感器

    这是LM75A温度传感器的概述,本文主要介绍基于Stm32f103的硬件iic驱动LM75A温度传感器. 这是我所使用的硬件电路,很简单. 对于该传感器的使用,主要是读取温度值,查看数据手册我们知道需 ...

  8. 基于Stm32f103利用模拟iic驱动LM75A温度传感器

    这两天一直在搞模拟iic,模拟iic相较于硬件iic的优势在于更稳定,io口的选择更灵活. 这次编写模拟iic驱动程序还是有点坎坷,其中模拟iic的时序不是难点,直接说我遇到的问题1.io口模式的选择 ...

  9. 1.3寸OLED IIC驱动右方出现两列像素白边的解决方法

    问题 因为1.3寸OLED IIC驱动资源网上少很多,买来时以为和0.96寸OLED的驱动一样,没在意,但使用0.96寸的程序调试中,却出现右方一直有两列白边. 思考 在排除其他接线.取模显示等因素后 ...

最新文章

  1. 3G时代需要“移动云计算专业”
  2. webpack4.0让编译速度飙升
  3. C++ Opengl旋转源码
  4. 寄云-Paas云服务体验
  5. java简单题目_Java考点知识简单练习题
  6. 面试中精华,俺自己总结的
  7. sso单点登录系统(解决session共享)
  8. 解决Kubelet Pod启动CreatePodSandbox或RunPodSandbox异常方法
  9. Clojure 学习入门(4)- 字符串
  10. curl 慢 不稳定_徐工起重机:龟速一样"慢"的机器,竟还有人抢着买?
  11. Futter基础第7篇: 实现底部导航
  12. Illustrator 教程,如何在 Ai 中创建一个新文档?
  13. 自豪地采用WordPress,如何删除链接?
  14. MySQL数据库主键与外键
  15. 用计算机看手机照片大小,手机怎么知道照片多少k
  16. linux通过80端口系统入侵,【转】21和80端口的入侵
  17. 数据库文档自动生成工具
  18. 简单spring cloud服务升级实现
  19. CSRNet: Dilated Convolutional Neural Networks for Understanding the Highly Congested Scen 论文阅读
  20. python基础19-36题

热门文章

  1. 扒一扒我遇见过哪些厌恶的技术面试官
  2. Faas 和无服务器架构
  3. Gogland IDE Run/Debug Configurations 配置说明
  4. 程序员的你是否熟练掌握Chrome开发者工具?
  5. Proactor设计模式
  6. 模型融合之stacking方法
  7. 【Python】青少年蓝桥杯_每日一题_12.27_输出回文数
  8. 字符文本中的字符太多_文本对抗---字符级别的攻击
  9. 开关电源异址替换实战割接
  10. python引用类 魔法方法_Python 学习笔记 -- 类的魔法方法