AB1601之iic驱动改造
由于项目中需要使用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驱动改造相关推荐
- Exynos4412 IIC总线驱动开发(二)—— IIC 驱动开发
前面在Exynos4412 IIC总线驱动开发(一)-- IIC 基础概念及驱动架构分析 中学习了IIC驱动的架构,下面进入我们的驱动开发过程 首先看一张代码层次图,有助于我们的理解 上面这些代码的展 ...
- MSP430杂谈--AD7745硬件IIC驱动与模拟IIC驱动
和上一篇AD7793类似,项目中也涉及到利用AD7745读取电容值,来测环境湿度.编写了基于MSP430的AD7745的硬件IIC驱动和模拟IIC驱动,分享给大家. AD7745硬件IIC驱动完整版下 ...
- IIC驱动0.96寸OLED屏幕显示(51单片机)
这篇文章得用到IIC驱动,大家如果不会IIC通信,可以看这篇文章,也是我写的,是有关IIC通信的,有什么不理解的可以在看一下:https://blog.csdn.net/m0_58832575/art ...
- stm32的IIC驱动0.96OLED
IIC原理介绍: IIC是一个总线的结构但不支持总线协议 OLED介绍: 一.0.96寸OLED屏幕介绍 本文采用的是4针的0.96寸OLED显示进行讲解,采用的是SPI协议,速度会比采用I2C协议的 ...
- Exynos4412 IIC总线驱动开发(一)—— IIC 基础概念及驱动架构分析 (iic驱动框架,i2c驱动框架)...
转载于 : http://blog.csdn.net/zqixiao_09/article/details/50917655 关于Exynos4412 IIC 裸机开发请看 :Exynos4412 裸 ...
- linux下IIC驱动开发分析
1. IIC规范 IIC(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备.IIC总线产生于在80年代,最初为音频和 ...
- 基于Stm32f103硬件iic驱动LM75A温度传感器
这是LM75A温度传感器的概述,本文主要介绍基于Stm32f103的硬件iic驱动LM75A温度传感器. 这是我所使用的硬件电路,很简单. 对于该传感器的使用,主要是读取温度值,查看数据手册我们知道需 ...
- 基于Stm32f103利用模拟iic驱动LM75A温度传感器
这两天一直在搞模拟iic,模拟iic相较于硬件iic的优势在于更稳定,io口的选择更灵活. 这次编写模拟iic驱动程序还是有点坎坷,其中模拟iic的时序不是难点,直接说我遇到的问题1.io口模式的选择 ...
- 1.3寸OLED IIC驱动右方出现两列像素白边的解决方法
问题 因为1.3寸OLED IIC驱动资源网上少很多,买来时以为和0.96寸OLED的驱动一样,没在意,但使用0.96寸的程序调试中,却出现右方一直有两列白边. 思考 在排除其他接线.取模显示等因素后 ...
最新文章
- 3G时代需要“移动云计算专业”
- webpack4.0让编译速度飙升
- C++ Opengl旋转源码
- 寄云-Paas云服务体验
- java简单题目_Java考点知识简单练习题
- 面试中精华,俺自己总结的
- sso单点登录系统(解决session共享)
- 解决Kubelet Pod启动CreatePodSandbox或RunPodSandbox异常方法
- Clojure 学习入门(4)- 字符串
- curl 慢 不稳定_徐工起重机:龟速一样"慢"的机器,竟还有人抢着买?
- Futter基础第7篇: 实现底部导航
- Illustrator 教程,如何在 Ai 中创建一个新文档?
- 自豪地采用WordPress,如何删除链接?
- MySQL数据库主键与外键
- 用计算机看手机照片大小,手机怎么知道照片多少k
- linux通过80端口系统入侵,【转】21和80端口的入侵
- 数据库文档自动生成工具
- 简单spring cloud服务升级实现
- CSRNet: Dilated Convolutional Neural Networks for Understanding the Highly Congested Scen 论文阅读
- python基础19-36题