OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2751|回复: 5

把iic读写函数封装成类似linux write read 函数,验证正确可行!!!

[复制链接]

4

主题

12

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2020-4-3
在线时间
22 小时
发表于 2020-4-17 10:13:59 | 显示全部楼层 |阅读模式
本帖最后由 z519585290 于 2020-4-26 11:35 编辑

公司一个器件官网提供的SDK是基于linux 的,最底层是IIC通信,用的是write read函数,想着是否stm32仿照改一下,请大家指点

2020-04-26更新

经过验证,需要添加类似 fd参数,就是设备读写地址,验证正确可行


u8 IIC_write(u8 fd ,u8 *send_buf,u8 lenght)     //fd  设备地址
{
        u8 i=0;
        IIC_Start();
        IIC_Send_Byte(fd<<1);
        IIC_Wait_Ack();         
        for(i=0;i<lenght;i++)
        {
        IIC_Send_Byte(*send_buf);
        IIC_Wait_Ack();         
        send_buf++;
        }
        IIC_Stop();        
        return lenght;
}



u8 IIC_read(u8 fd ,u8 *read_buf,u8 lenght)
{
        u8 i=0;
        IIC_Start();
        IIC_Send_Byte(1+(fd<<1));
        IIC_Wait_Ack();
        for(i=0;i<lenght;i++)
        {
                if (i<lenght-1)
                {*read_buf=IIC_Read_Byte(1);}
                else
                {*read_buf=IIC_Read_Byte(0);}
                read_buf++;
        }
        IIC_Stop();        
        return lenght;
}






正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

7

主题

101

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
317
金钱
317
注册时间
2017-9-16
在线时间
80 小时
发表于 2020-4-17 21:52:03 来自手机 | 显示全部楼层
你要按POSIX风格来?还是严格遵照POSIX?后者你要实现系统调用的(逃)
回复 支持 反对

使用道具 举报

4

主题

12

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2020-4-3
在线时间
22 小时
 楼主| 发表于 2020-4-24 17:01:18 | 显示全部楼层
本帖最后由 z519585290 于 2020-4-26 11:34 编辑
ISO14882 发表于 2020-4-17 21:52
你要按POSIX风格来?还是严格遵照POSIX?后者你要实现系统调用的(逃)

改进后,验证可行,可读取iic设备
回复 支持 反对

使用道具 举报

4

主题

12

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2020-4-3
在线时间
22 小时
 楼主| 发表于 2020-4-24 17:04:08 | 显示全部楼层
ISO14882 发表于 2020-4-17 21:52
你要按POSIX风格来?还是严格遵照POSIX?后者你要实现系统调用的(逃)

其实我只想仿照posix风格自己封装 iic 的 读写函数 ,方便把在linux上跑的sdk弄到stm32 上来
回复 支持 反对

使用道具 举报

7

主题

101

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
317
金钱
317
注册时间
2017-9-16
在线时间
80 小时
发表于 2020-4-24 21:13:18 来自手机 | 显示全部楼层
linux如果是用户层的话有一层VFS,把设备抽象为文件,至于这层抽象怎么做,结合设备吧
回复 支持 反对

使用道具 举报

4

主题

12

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2020-4-3
在线时间
22 小时
 楼主| 发表于 2020-4-26 11:32:52 | 显示全部楼层
ISO14882 发表于 2020-4-24 21:13
linux如果是用户层的话有一层VFS,把设备抽象为文件,至于这层抽象怎么做,结合设备吧

谢回复,已经验证可行!!!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-2 02:40

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表