0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Red Eye Camera开发日记之API移植I2C和关键接口函数

HB稳控科技 来源:HB稳控科技 作者:HB稳控科技 2022-11-24 16:08 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

API 说明文件里面有官方的移植指导,但我觉得可以把重点放在与MLX90640 具体操作有关的几个函数上,而与标准I2C 相关的函数和文件结构还是按照自己习惯的套路实现。这样更符合我们开发人员的可控性的习惯。步骤如下:

(1) 建立标准I2C 文件IIC.h 和IIC.c

用自己的方法实现如下几个函数(硬件也好,GPIO 模拟也好),函数名称用下面建议的。

void IIC_Init(void); //I2C 接口初始化

void IIC_Start(void); //发送开始信号

void IIC_Stop(void); //发送结束信号

void IIC_SendACK(void); //发送应答信号

void IIC_SendNAK(void); //发送非应答信号unsigned char IIC_RecvACK(void); //读取应答信号unsigned char IIC_RecvData(void); //读取 1 个字节void IIC_SendData(char dat); //发送 1 个字节

(2) 在工程中引入MLX90640_API.c

并做如下几处修改

第一行#include 改为#include

(3) 添加3 个函数

void MLX90640_I2CInit(void)

unsigned char MLX90640_I2CRead (unsigned short startAddress, unsigned short nWordsRead, unsigned short *datas)

unsigned char MLX90640_I2CWrite (unsigned short writeAddress, unsigned short word)

void MLX90640_I2CInit(void)

{

IIC_Stop();

}

//从指定地址读取 n 个字(每个字占用 2 个字节)

unsigned char MLX90640_I2CRead(unsigned short startAddress, unsigned short nWordsRead, unsigned short *datas)

{

unsigned char c1,c2; unsigned short i; unsigned char Msb,Lsb;

Msb=(unsigned char)(startAddress>>8); Lsb=(unsigned char)(startAddress&0x00FF);

IIC_Start(); //发送起始命令

IIC_SendData(0x66); //发送设备地址+写命令IIC_RecvACK();

IIC_SendData(Msb); //发送要操作的地址值2 字节

image.png

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • API
    API
    +关注

    关注

    2

    文章

    2147

    浏览量

    66215
  • I2C
    I2C
    +关注

    关注

    28

    文章

    1547

    浏览量

    130473
  • 函数
    +关注

    关注

    3

    文章

    4406

    浏览量

    66827
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    基于CW32 MCU的I2C接口优化稳定读写EEPROM关键技术

    CW32 MCU优化I2C接口,确保在与EEPROM芯片通信时的稳定性。内容涵盖以下几个关键技术点: I2C时序与频率调整:介绍如何根据EEPROM的特性,合理设置
    发表于 12-03 07:29

    如何使用I2C中的各个函数

    在加入I2C驱动时,会有i2c_core.c这样的C文件,里面的各个函数怎么用有没有例子,非常感谢
    发表于 09-12 06:24

    深入剖析I2C协议

    I2C是由Philips开发的简单的双向两线总线,在深入浅出理解SPI协议中,我们区分了单工,半双工,全双工协议数据流向的区别,根据特征,I2C协议属于半双工协议(即同一时刻,数据单向流动)。此外
    的头像 发表于 08-21 15:10 3267次阅读
    深入剖析<b class='flag-5'>I2C</b>协议

    高效率、6通道、白光LED驱动器,带I2C接口 skyworksinc

    电子发烧友网为你提供()高效率、6通道、白光LED驱动器,带I2C接口相关产品参数、数据手册,更有高效率、6通道、白光LED驱动器,带I2C接口的引脚图、接线图、封装手册、中文资料、英
    发表于 07-30 18:31
    高效率、6通道、白光LED驱动器,带<b class='flag-5'>I2C</b><b class='flag-5'>接口</b> skyworksinc

    【RA-Eco-RA6M4开发板评测】2I2C外设驱动OLED屏幕和移植u8g2

    Delay的回调函数实现; 与通讯接口(比如I2C、SPI)相关的数据传输回调函数。 这两个函数的实现在u8g
    发表于 07-23 13:51

    简单了解I2C接口

    在电子电路的复杂世界里,各种电路模块设备需要相互通信才能协同工作 ,I2C接口就像是电路模块设备间的沟通桥梁,今天就带大家深入了解它。
    的头像 发表于 05-08 14:15 2056次阅读
    简单了解<b class='flag-5'>I2C</b><b class='flag-5'>接口</b>

    嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-I2C设备驱动Linux下的I2C驱动简介

    I2C协议的基本功能的软件或硬件实现。它通常包括对I2C总线的初始化、数据传输、时序控制和错误处理等功能的支持。I2C核心提供了一组API接口
    发表于 04-15 10:39

    飞凌嵌入式ElfBoard ELF 1板卡-I2C设备驱动Linux下的I2C驱动简介

    I2C协议的基本功能的软件或硬件实现。它通常包括对I2C总线的初始化、数据传输、时序控制和错误处理等功能的支持。I2C核心提供了一组API接口
    发表于 04-15 10:19

    I2C总线复用

    帝晶智慧屏I2C总线复用
    的头像 发表于 03-11 17:20 1852次阅读

    I2C总线通信原理 如何设计I2C总线电路

    、高效的通信接口标准。I2C总线通信原理主要包括以下要点: 总线结构 : I2C总线仅使用两条信号线,即串行数据线(SDA)和串行时钟线(SCL)。 SDA线路用于传输实际的数据信息,而SCL线路则用于同步通信的时钟信号。 通信
    的头像 发表于 01-31 15:01 1877次阅读

    I2C总线与Arduino的接口示例

    在现代电子设计中,I2C总线因其简单性和灵活性而广受欢迎。它允许多个设备共享同一通信线路,从而节省空间和成本。Arduino,作为一个多功能的微控制器平台,自然也支持I2C通信。 I2C总线
    的头像 发表于 01-17 15:34 2358次阅读

    I2C总线应用实例分析

    在现代电子系统中,I2C总线因其简单、灵活和高效的特点而被广泛应用于各种设备之间的通信。 I2C总线概述 I2C总线由Philips(现为NXP)在1980年代初期开发,最初用于音频和
    的头像 发表于 01-17 15:09 1232次阅读

    AN-840: 通过I2C接口更新代码

    电子发烧友网站提供《AN-840: 通过I2C接口更新代码.pdf》资料免费下载
    发表于 01-15 16:04 0次下载
    AN-840: 通过<b class='flag-5'>I2C</b><b class='flag-5'>接口</b>更新代码

    UC-001:MicroConverter I2C兼容接口

    电子发烧友网站提供《UC-001:MicroConverter I2C兼容接口.pdf》资料免费下载
    发表于 01-15 15:51 0次下载
    UC-001:MicroConverter <b class='flag-5'>I2C</b>兼容<b class='flag-5'>接口</b>

    DS90UB913与camera之间i2c通信,用示波器检测不到信号是怎么回事?

    应用场合:HOST + DS90UB914 + DS90UB913 + CAMERA(i2c address:0x10) 硬件平台用的是TI的开发板 现在遇到的问题:DS90UB913
    发表于 12-24 07:19