搜索
bottom↓
回复: 445

相信这是ouravr共享中,目前最完美的STM32读写EEPROM驱动,硬件I2C中断加DMA方式(原创)

  [复制链接]

出0入0汤圆

发表于 2011-1-21 11:11:02 | 显示全部楼层 |阅读模式
山寨一下标题,哈哈。
这个驱动是我花了一整天弄出来的,理论上支持AT24C02-AT24C512全部的型号,我只测试过AT24C16,AT24C32。
换型号改一下头文件定义就可以,调用也很简单,见头文件,支持任意地址读写任意长度,欢迎测试。
点击此处下载 ourdev_612596ZAFTBZ.rar(文件大小:4K) (原文件名:i2c_ee.rar)

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2011-1-21 13:36:46 | 显示全部楼层
顶一个

出0入0汤圆

发表于 2011-1-21 13:48:08 | 显示全部楼层
mark

出0入12汤圆

发表于 2011-1-21 13:48:49 | 显示全部楼层
在RTT里面搞个device来试试

出0入0汤圆

发表于 2011-1-21 14:28:13 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-1-21 14:33:21 | 显示全部楼层
我也mark

出0入0汤圆

发表于 2011-1-21 15:03:53 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-1-21 15:41:33 | 显示全部楼层
这个好,下来试试

出0入0汤圆

发表于 2011-1-21 16:12:10 | 显示全部楼层
顶一个

出0入0汤圆

发表于 2011-1-21 16:18:40 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-1-21 20:50:17 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-1-21 20:52:54 | 显示全部楼层
顶一个!

出0入0汤圆

发表于 2011-1-21 21:32:52 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-1-21 21:54:55 | 显示全部楼层

出0入0汤圆

发表于 2011-1-21 22:51:31 | 显示全部楼层
呵呵

出0入0汤圆

发表于 2011-1-21 23:33:24 | 显示全部楼层
MARK

出0入0汤圆

 楼主| 发表于 2011-1-22 08:44:16 | 显示全部楼层
请测试过的朋友列一下能用的型号吧。

出0入300汤圆

发表于 2011-1-22 13:24:18 | 显示全部楼层
不管是不是能马上用到,但看到这种帖子总是很感动

出0入0汤圆

 楼主| 发表于 2011-1-22 17:04:40 | 显示全部楼层
多谢楼上朋友顶贴。
我是看到网上STM32的i2C驱动几乎都是用模拟或者查询方式,所以自己就参考了很多资料,完成了这个驱动。之前从ourdev学到了不少,因此发出来,与大家分享。
我只测试过部分型号,请试过的朋友列一下能用的型号。
总是没人气,杯具。

出0入0汤圆

发表于 2011-1-22 20:29:04 | 显示全部楼层
顶楼主!
mark

出0入0汤圆

发表于 2011-1-22 20:44:11 | 显示全部楼层
STM32的硬件、i2C不是有问题吗?

出0入0汤圆

发表于 2011-1-22 21:43:40 | 显示全部楼层
谢谢分享

出0入0汤圆

 楼主| 发表于 2011-1-23 10:37:28 | 显示全部楼层
回复【20楼】fy024  梦兰
-----------------------------------------------------------------------

STM32的硬件I2C只是很难调,很多人都放弃了,最好要把中断设成最高优先级。
到底有没有问题试一下这个程序就知道了。

出0入0汤圆

发表于 2011-1-23 10:46:43 | 显示全部楼层
顶,谢谢分享。

出0入0汤圆

发表于 2011-1-24 15:21:49 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-1-25 00:38:54 | 显示全部楼层
mark

出10入0汤圆

发表于 2011-1-25 09:18:24 | 显示全部楼层
回复【22楼】lj2505
-----------------------------------------------------------------------

STM32的IIC正常的时候一直都是正常的,不正常的时候就是那么一下,开机初始化就过不去。

出0入0汤圆

发表于 2011-1-25 10:24:36 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-1-25 21:33:42 | 显示全部楼层
谢谢。。。

出200入0汤圆

发表于 2011-1-25 23:35:33 | 显示全部楼层
谢谢分享

出0入0汤圆

发表于 2011-1-26 08:41:02 | 显示全部楼层
记号

出0入0汤圆

发表于 2011-1-26 08:56:47 | 显示全部楼层
谢谢楼主分享!!

出0入0汤圆

发表于 2011-1-26 09:16:11 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-1-26 11:01:04 | 显示全部楼层
谢谢楼主分享,好同志!

出0入0汤圆

发表于 2011-1-26 11:09:18 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-1-26 11:17:01 | 显示全部楼层
记号

出0入0汤圆

发表于 2011-1-26 22:29:17 | 显示全部楼层
给楼主增加点人气,顶一下。

出0入0汤圆

发表于 2011-1-27 09:26:34 | 显示全部楼层
顶一个!!!

出0入0汤圆

发表于 2011-1-27 12:53:27 | 显示全部楼层
make

出0入0汤圆

发表于 2011-1-30 13:48:34 | 显示全部楼层
试一下,做个标记

出0入0汤圆

发表于 2011-1-30 16:17:18 | 显示全部楼层
是按官方的解决方法?

出0入0汤圆

发表于 2011-1-31 10:10:10 | 显示全部楼层
标记一下,谢谢版主

出0入0汤圆

发表于 2011-2-4 02:17:05 | 显示全部楼层
谢谢楼主分享.

出0入0汤圆

发表于 2011-2-4 16:44:27 | 显示全部楼层
回复【楼主位】lj2505
-----------------------------------------------------------------------

谢谢楼主分享.

出0入0汤圆

发表于 2011-2-5 17:04:19 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-2-5 18:45:11 | 显示全部楼层
原来的是用模拟的,多谢lz了

出0入0汤圆

发表于 2011-2-13 14:00:48 | 显示全部楼层
不错,没人气就帮你顶出人气来!

出0入0汤圆

发表于 2011-3-2 09:31:01 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-3-2 09:40:15 | 显示全部楼层
MARK 以后用得上

出0入0汤圆

发表于 2011-3-2 12:56:57 | 显示全部楼层
感谢分享,学习一下先

出0入0汤圆

发表于 2011-3-2 14:02:48 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-3-21 23:25:29 | 显示全部楼层
jh

出0入0汤圆

发表于 2011-3-22 12:29:05 | 显示全部楼层
昨天开始搞EEPROM,稍后测试再来汇报。

出0入0汤圆

发表于 2011-3-22 12:47:38 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-3-22 13:34:31 | 显示全部楼层
备用!

出0入0汤圆

发表于 2011-3-22 13:45:45 | 显示全部楼层
记号

出0入0汤圆

发表于 2011-3-23 12:43:32 | 显示全部楼层
回复【52楼】b260123292
昨天开始搞eeprom,稍后测试再来汇报。
-----------------------------------------------------------------------

IIC没有成功,决定暂时放弃,先用模拟的实现功能再回来搞硬件IIC了。

出0入0汤圆

发表于 2011-3-23 13:05:50 | 显示全部楼层
学习了

出0入12汤圆

发表于 2011-4-15 15:11:34 | 显示全部楼层
折腾1早上,楼主的代码用不了,硬件I2C真是唉..........

出0入0汤圆

发表于 2011-4-15 20:55:09 | 显示全部楼层
标记一下,学习了

出0入0汤圆

发表于 2011-4-16 10:56:05 | 显示全部楼层
下载不了,楼主能否发我一份啊?我邮件33164187@qq.com

出0入0汤圆

发表于 2011-4-16 11:19:20 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-4-16 15:29:46 | 显示全部楼层
下载不了,楼主能否发我一份啊?我邮件wangqiangabc@163.com

出0入0汤圆

发表于 2011-4-16 15:31:48 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-4-17 13:22:34 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-4-17 16:23:52 | 显示全部楼层
MARK

出0入0汤圆

发表于 2011-4-18 20:30:39 | 显示全部楼层
强力Mark

出0入0汤圆

发表于 2011-4-19 15:17:28 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-4-19 16:59:54 | 显示全部楼层
收藏备用,官方的经常卡住

出30入0汤圆

发表于 2011-4-19 19:30:44 | 显示全部楼层
楼主辛苦了,大致看了一下程序,花了很多功夫的!
我用的是AT24C215,自己写了一个驱动,用的也是DMA驱动,我的IIC管脚当CAN口用了,所以是重映射的IIC口,不用操作系统感觉可以,用了RT-Thread和UCOS以后会卡住,我加了一个count,当判定10000次以后,不管有无状态位相应,直接通过,就没有出过问题了,有时有机会帮你测试一下。

出0入0汤圆

发表于 2011-4-19 21:28:30 | 显示全部楼层
mark!!!!!

出0入0汤圆

发表于 2011-4-20 09:18:05 | 显示全部楼层
回复【22楼】lj2505  

stm32的硬件i2c只是很难调,很多人都放弃了,最好要把中断设成最高优先级。
到底有没有问题试一下这个程序就知道了。
-----------------------------------------------------------------------

为什么一个I2C要用最高级别中断,有这个BUG就够淘汰STM32的I2C了

出0入0汤圆

 楼主| 发表于 2011-4-20 09:22:10 | 显示全部楼层
怎么这么多人用不了,我这个程序在一个项目上已经用起来了的啊。
不能用的先试试这个最简单的测试程序吧,郁闷。
点击此处下载 ourdev_632228T3TYH2.rar(文件大小:278K) (原文件名:stm32-i2c-prj.rar)

出0入0汤圆

发表于 2011-4-20 10:52:07 | 显示全部楼层
马瑞卡

出0入0汤圆

发表于 2011-4-20 13:17:36 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-4-21 18:14:01 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-4-21 19:07:12 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-4-21 22:09:41 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-4-22 19:26:35 | 显示全部楼层
xiexie

出0入0汤圆

发表于 2011-4-22 19:32:48 | 显示全部楼层
Mark

出0入0汤圆

发表于 2011-4-22 19:54:14 | 显示全部楼层
回复【69楼】linquan315  
-----------------------------------------------------------------------

你好,
我现在用STM32的IIC调试一个IIC接口的加速度传感器就出现通不过去的情况。不知道是否跟你描述的一样,加一个延时能否过去。

出0入0汤圆

发表于 2011-4-23 01:31:31 | 显示全部楼层
mark iic eeprom

出0入0汤圆

发表于 2011-4-23 07:44:54 | 显示全部楼层
都在用软件模拟i2c,不知道硬件新版本bug更新了没!期待

出0入0汤圆

发表于 2011-4-23 08:12:09 | 显示全部楼层
mk

出0入0汤圆

发表于 2011-4-23 08:12:59 | 显示全部楼层
有空帮你测试一下看 没看到中断文件,只看到了DMA

出0入0汤圆

发表于 2011-4-23 16:17:04 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-4-29 21:59:48 | 显示全部楼层
回复【楼主位】lj2505  
-----------------------------------------------------------------------

楼主,能否提供一下你测试的例程工程啊啊,我不知道为什么没调通,,呵呵~~谢谢~~我邮件331641857@qq.com

出0入0汤圆

发表于 2011-4-30 00:32:19 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-4-30 09:39:31 | 显示全部楼层
回复【楼主位】lj2505
-----------------------------------------------------------------------

楼主发个完整的工程吧!!524649290@qq.com  谢谢

出0入0汤圆

发表于 2011-5-3 00:11:34 | 显示全部楼层

出0入0汤圆

发表于 2011-5-3 14:02:50 | 显示全部楼层
mark!

出0入0汤圆

发表于 2011-5-5 09:42:36 | 显示全部楼层
回复【86楼】wuguoyan 吴国炎
-----------------------------------------------------------------------

回复【72楼】lj2505
-----------------------------------------------------------------------

我用的mirochip的24LC256搞iic也郁闷了,几天都没有弄出来,我也要份工程哈,xdpzxh@126.com,谢谢!

出0入0汤圆

发表于 2011-5-13 08:40:07 | 显示全部楼层
测试过稳定不? 像ST的 例子就。。。
不过思路不错,但是会耗掉一部份资源  必须要中断级别为 最高级。
这个在实时系统中,有些小小的问题。一般I2C在实时系统中为次要存储。
还是顶了。

出0入0汤圆

发表于 2011-5-13 09:02:24 | 显示全部楼层
按照ST的官方ERRATA说明,要用IIC必须
1)最高优先级
2)启动DMA.

如果程序中频繁通过IIC读写的话,个人建议使用IO口模拟。
因为本人程序频繁读写,又不能设置最高优先级,
所以开始测试没问题,但是长时间运行96小时最低要求,发现ST的IIC根本不行。
改成IO口模拟,长时间运行24*30天,无问题。

小应用可以用用IIC,复杂程序下还是IO口模拟吧。

出0入0汤圆

发表于 2011-5-13 15:52:58 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-5-15 21:21:15 | 显示全部楼层
收藏。

出0入0汤圆

发表于 2011-5-17 23:21:16 | 显示全部楼层

出0入0汤圆

发表于 2011-5-18 13:47:06 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-5-20 14:58:46 | 显示全部楼层
回复【楼主位】lj2505
-----------------------------------------------------------------------

出0入0汤圆

发表于 2011-5-20 17:14:13 | 显示全部楼层
mark
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-3-29 13:38

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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