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

    文章

    1501

    浏览量

    62027
  • I2C
    I2C
    +关注

    关注

    28

    文章

    1487

    浏览量

    123780
  • 函数
    +关注

    关注

    3

    文章

    4331

    浏览量

    62622
收藏 人收藏

    评论

    相关推荐

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

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

    BTB扩展接口:LCD、Camera、UART、I2C等|详解篇

    今天我们来学习的是BTB扩展接口的LCD、Camera、UART、I2C详解,特别分享Air201硬件BTB扩展接口相关内容。
    的头像 发表于 11-30 09:39 321次阅读
    BTB扩展<b class='flag-5'>接口</b>:LCD、<b class='flag-5'>Camera</b>、UART、<b class='flag-5'>I2C</b>等|详解篇

    RISC V的I2C操作

    i2c_masterStopBlocking(I2C_CTRL);//master send stop l  小结:RISC V中提供的关于I2C函数,相当于把
    的头像 发表于 11-01 11:06 206次阅读

    光隔离器选择指南:TPS2384 I2C接口

    电子发烧友网站提供《光隔离器选择指南:TPS2384 I2C接口.pdf》资料免费下载
    发表于 10-11 09:34 0次下载
    光隔离器选择指南:TPS2384 <b class='flag-5'>I2C</b><b class='flag-5'>接口</b>

    I2C基本指南

    电子发烧友网站提供《I2C基本指南.pdf》资料免费下载
    发表于 09-10 09:40 0次下载
    <b class='flag-5'>I2C</b>基本指南

    利用具备I2C通信接口的降压转换器获益

    电子发烧友网站提供《利用具备I2C通信接口的降压转换器获益.pdf》资料免费下载
    发表于 08-29 10:36 0次下载
    利用具备<b class='flag-5'>I2C</b>通信<b class='flag-5'>接口</b>的降压转换器获益

    简单认识I2C通信协议

    I2C(Inter-Integrated Circuit)通信协议是由飞利浦公司(现为恩智浦半导体)开发的一种简单、双向二线制同步串行总线协议。自1982年发布以来,I2C协议因其高效、灵活和易于实现的特点,在电子设备间的数据交
    的头像 发表于 07-25 18:06 1468次阅读

    具有 I2C 接口的 LNB 稳压器TPS652353数据表

    电子发烧友网站提供《具有 I2C 接口的 LNB 稳压器TPS652353数据表.pdf》资料免费下载
    发表于 03-26 11:12 0次下载
    具有 <b class='flag-5'>I2C</b> <b class='flag-5'>接口</b>的 LNB 稳压器TPS652353数据表

    什么是I2C协议 I2C总线的控制逻辑

    在实际使用过程中,I2C比较容易出现的一个问题就是死锁 ,死锁在I2C中主要表现为:I2C死锁时表现为SCL为高,SDA一直为低。
    发表于 03-12 09:17 1073次阅读
    什么是<b class='flag-5'>I2C</b>协议 <b class='flag-5'>I2C</b>总线的控制逻辑

    详解I2C接口协议

    I2C总线是由荷兰皇家飞利浦Philips公司(现恩智浦NXP半导体)开发的一种简单的双向两线制总线协议标准。
    发表于 03-07 10:22 2137次阅读
    详解<b class='flag-5'>I2C</b><b class='flag-5'>接口</b>协议

    具有I2C接口的 LNB 稳压器TPS652353数据表

    电子发烧友网站提供《具有I2C接口的 LNB 稳压器TPS652353数据表.pdf》资料免费下载
    发表于 03-06 13:38 0次下载
    具有<b class='flag-5'>I2C</b><b class='flag-5'>接口</b>的 LNB 稳压器TPS652353数据表

    i2c接口由哪几根线组成 i2c接口可以接哪些器件

    I2C接口的线路可以适应不同的系统需求和器件规格,因此具体的线路配置可能会有所不同。但通常来说,时钟线(SCL)和数据线(SDA)是I2C接口的核心线路。
    的头像 发表于 03-05 16:55 3809次阅读
    <b class='flag-5'>i2c</b><b class='flag-5'>接口</b>由哪几根线组成 <b class='flag-5'>i2c</b><b class='flag-5'>接口</b>可以接哪些器件

    GD32 MCU硬件I2C不可靠不如软件I2C?来看看红枫派开发版的硬件I2C驱动如何做到稳得一批

    在一个评论中,看到网友对硬件I2C的讨论,硬件I2C Busy找不到原因、软件I2C稳得一批。
    的头像 发表于 02-23 09:37 2793次阅读
    GD32 MCU硬件<b class='flag-5'>I2C</b>不可靠不如软件<b class='flag-5'>I2C</b>?来看看红枫派<b class='flag-5'>开发</b>版的硬件<b class='flag-5'>I2C</b>驱动如何做到稳得一批

    什么是I2C接口?什么是I3C接口I2CI3C的区别

    I2C接口是一种串行通信协议,全称为Inter-Integrated Circuit,即集成电路间总线。它是一种双向、两线制(SCL和SDA)的串行通信接口,主要用于连接微控制器和其他外围设备,如传感器、存储器、显示器等。
    的头像 发表于 02-17 14:39 6369次阅读
    什么是<b class='flag-5'>I2C</b><b class='flag-5'>接口</b>?什么是<b class='flag-5'>I3C</b><b class='flag-5'>接口</b>?<b class='flag-5'>I2C</b>与<b class='flag-5'>I3C</b>的区别

    XV4001BC车载用SPI/I2C输出接口的数字输出

    XV4001BC车载用SPI/I2C输出接口的数字输出,可实现角速度输出和温度传感器输出,满足汽车导航和通讯系统的要求。SPI / I2C 输出接口角速度输出(16bit)、温度传感
    发表于 01-02 16:33 0次下载