laoshuhunya 发表于 2013-5-6 12:02:35

模拟I2C与SPI,适合新手参考

本帖最后由 laoshuhunya 于 2013-5-6 13:26 编辑

范例工程在KEIL RVMDK471下编译,以器件SST25VF020和AT24C64为实例。
每个模块由三个文件组成:功能定义文件,模块配置文件,模块声明文件。
功能定义文件的扩展名为“.c”, 模块配置和声明文件的扩展名为“.h”。
模块配置文件根据具体应用修改,功能定义文件、模块声明文件无需修改。
例如:文件包中“I2C_Master_def_v6.0.c”为功能定义文件,“I2C_Config_v6.0. h”为模块配置文件,“I2C_dec_v6.0.h”为模块声明文件。
使用时,把功能定义文件添加到你的工程中,并且在要使用到本I2C或SPI模块的文件中包含模块配置和声明头文件即可。

模拟SPI总线:
(1)        支持0、1、2、3 所有四种总线工作模式
(2)        支持1~64位数据帧长度
(3)        可选MSB或LSB先发送
(4)        可选SS线的有效电平
(5)        总线时钟速率可调
(6)        严格符合SPI总线技术规范
(7)        模块代码经过测试验证和产品量产检验

模拟I2C总线:
(1)        支持总线竞争仲裁,尤其适用于多任务系统
(2)        支持7位和10位器件地址
(3)        支持多字节数据地址
(4)        SCL超时时间可调
(5)        SDA超时时间可调
(6)        总线时钟速率可调
(7)        完整的总线状态信息:正常、超时、竞争失败、器件地址无应答、数据地址无应答、重复方向码无应答、数据内容无应答、函数参数错误
(8)        严格符合I2C总线技术规范
(9)        模块代码经过测试验证和产品量产检验(I2C从机模块未测试)





修改原因:错别字。

laoshuhunya 发表于 2013-5-6 12:07:18

晕,图片多了一个

imjacob 发表于 2013-5-6 12:37:34

下载来看看

zqy517 发表于 2013-5-6 13:12:59

很好的 可以参考下了 谢谢LZ@哈

laoshuhunya 发表于 2013-5-6 13:22:37

补充说明:没有用ST的库,直接操作硬件寄存器

另:添加两个PDF


yuyu87 发表于 2013-5-6 13:36:16

MDK471都用上了啊?

liujinhan 发表于 2013-5-6 14:43:22

顶一下!!~

有用!谢谢!

wtliu 发表于 2013-5-6 15:13:04

不错,收了

JoshuaAstray 发表于 2013-7-27 21:19:01

楼主这个代码果然给力,我把它稍微修了两句,INA219就通了,找了很多代码都不能用,就楼主这个给力!!

lncwangfeilnc 发表于 2013-7-28 08:37:57

标记一下

zhmingwang 发表于 2013-8-7 12:26:14

项LZ, 学习学习

laoshuhunya 发表于 2013-8-16 16:27:09

JoshuaAstray 发表于 2013-7-27 21:19 static/image/common/back.gif
楼主这个代码果然给力,我把它稍微修了两句,INA219就通了,找了很多代码都不能用,就楼主这个给力!! ...

恭喜打通任督二脉。
俺最头疼看别人代码,你居然能轻易把这个I2C用起来,俺认为你比楼主给力!

冰雪王爵 发表于 2013-8-18 19:00:10

zqy517 发表于 2013-8-19 01:37:54

标记一下

qinshiysb 发表于 2013-8-19 05:55:25

恩恩   学习了谢谢楼主{:smile:}

flysky1124 发表于 2013-8-19 08:33:53

收藏了,谢谢!{:lol:}

黄瓜 发表于 2013-8-19 09:20:22

学习{:smile:}

bourne 发表于 2019-4-16 02:25:03

学习了,多谢

vjcmain 发表于 2019-4-16 08:44:46

cool                     

mychestnut 发表于 2019-4-16 09:28:48

很多年前申请了ST的开发板,最近才开始学习。惭愧!

laoshuhunya 发表于 2019-4-16 10:23:25

多年前的帖子了,好吧,既然被挖出来了就更新下主贴内容。
本贴附件更适合多线程下使用,并且继承了虚拟世界实验室一贯的高稳定性和高可靠性。
如果使用了本程序但您的I2C接口访问仍然不正常,那一定是您的硬件或MCU配置问题。



razorYang 发表于 2023-10-14 22:17:57

感谢大佬,今天学习了大佬代码中的一些处理方法,受益良多
页: [1]
查看完整版本: 模拟I2C与SPI,适合新手参考