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

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 字节


广西首发G创新应5G﹢北斗高精度定位专网及Smart OTN政企专网等
PLC梯形图的总体分析和具体解读方法
还记得首款有显示屏的GTX 1080Ti吗?七彩虹将继续发三款有显示屏的显卡
导热硅胶片是应用在新能源电池十分重要的导热材料!
探维王雨晴:激光雷达助力低速无人驾驶产业规模化发展
Red Eye Camera开发日记之API移植I2C和关键接口函数
技术 | 运放放大器应该注意的问题,你知道如何避免吗?
我国千兆固定宽带接入用户数快速提升,用户总数达4.76亿户
ZMC408SCAN光纤激光器如何实现激光能量的控制
全网最全面、最细致的EXPLAIN解读
曝苹果正开发一款AR耳机 计划在2019年之前完成
在半导体设计领域,部分企业研发能力已达7纳米
高配版水平垂直燃烧测试仪产品用途
商务部回应欧盟对华电动汽车反补贴调查抽样结果
nokia全球第一部智能手机!
315/433M 无线发射芯片XL4456的功能介绍
选取一款合适的虹科Dimetix激光测距传感器
卫星连接弥合了与服务不足的物联网市场的差距
STM32L151CBT6A ST ARM微控制器的详细参数
什么是三防漆_三防漆有哪些好处_哪些应用可从三防漆受益?