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

    文章

    2474

    浏览量

    67005
  • I2C
    I2C
    +关注

    关注

    28

    文章

    1562

    浏览量

    131727
  • 函数
    +关注

    关注

    3

    文章

    4421

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    深入解析 MAX31328:高精度 I2C RTC 的卓越

    深入解析 MAX31328:高精度 I2C RTC 的卓越选 在电子设备的设计中,实时时钟(RTC)是不可或缺的一部分,它为系统提供准确的时间信息,确保设备的正常运行。今天,我们将深入探讨
    的头像 发表于 03-26 16:10 140次阅读

    SGM4541A:I2C总线过压保护的理想

    SGM4541A:I2C总线过压保护的理想选 在电子设备的设计中,I2C总线的稳定运行至关重要。而SGM4541A作为一款低IQ I2C总线过压保护器,凭借其出色的性能和丰富的特性,
    的头像 发表于 03-17 16:30 212次阅读

    RK平台I2C开发:从硬件原理到实战排查

    在嵌入式开发中,I2C 总线是连接外设的 “桥梁”—— 小到传感器、EEPROM,大到 LCD 驱动器、音频芯片,都离不开它的控制。而瑞芯微(Rockchip)系列芯片作为主流嵌入式方案,其 I2C 控制器的
    的头像 发表于 02-05 13:42 2394次阅读
    RK平台<b class='flag-5'>I2C</b><b class='flag-5'>开发</b>:从硬件原理到实战排查

    探索PCF8584:I2C总线控制器的卓越

    探索PCF8584:I2C总线控制器的卓越选 在电子工程师的日常工作中,选择合适的芯片来实现特定功能至关重要。今天,我们就来深入探讨一款功能强大的I2C总线控制器——PCF8584,它由飞利浦
    的头像 发表于 12-28 15:40 753次阅读

    基于FPGA的I2C控制模块设计

    I2C_WRITE_WDATA.v模块实现I2C写时序,I2C_Controller (I2C控制器)例化了I2C_WRITE_WDATA.
    的头像 发表于 12-26 09:48 5938次阅读
    基于FPGA的<b class='flag-5'>I2C</b>控制模块设计

    深入解析TCA9617B:I2C总线中继器的卓越

    深入解析TCA9617B:I2C总线中继器的卓越选 在电子工程师的日常设计工作中,I2C总线和SMBus系统的应用极为广泛。而TCA9617B作为一款BiCMOS双双向缓冲器,专为I2C
    的头像 发表于 12-22 15:20 636次阅读

    AS32X601的I2C模块操作EEPROM详解

    国科安芯推出的AS32X601系列MCU芯片内置的I2C模块提供了符合工业标准的两线串行制接口,可用于MCU和外部I2C设备的通讯。I2C总线使用两条串行线:串行数据线SDA和串行时钟
    的头像 发表于 12-21 21:39 1581次阅读
    AS32X601的<b class='flag-5'>I2C</b>模块操作EEPROM详解

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

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

    【RA-Eco-RA6M4开发板评测】I2C使用

    通讯,在 RT-Thread 中将 I2C 主机虚拟为 I2C总线设备,I2C 从机通过 I2C 设备接口
    发表于 11-09 21:58

    如何使用I2C中的各个函数

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

    深入剖析I2C协议

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

    嵌入式接口通识知识I2C接口

    4.1 基本概念I2C的全称是Inter-Integrated Circuit,译为集成电路总线,是一种同步、双向、半双工的两线式串行接口总线。连接到I2C总线上的设备既可以用作主设备,也可以用作从
    发表于 08-14 14:46

    高效率、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 2816次阅读
    简单了解<b class='flag-5'>I2C</b><b class='flag-5'>接口</b>