打印
[DSP编程]

DSP28335利用I2C总线从AT24C64中读写数据

[复制链接]
3076|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
LENA989|  楼主 | 2014-8-19 21:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我会告诉你这是我第一次写DSP28335程序么?我会告诉你当时我看寄存器配置和I2c时序图都快疯了么?当时在网上也找了几个相关例程,但都是FIFO中断的,完全看不懂好么??最后,痛定思痛,还是根据自己的理解自己动手吧,过程必须是很痛苦的。。。。哈哈哈,当然程序调通时,我也是很高兴滴~~废话不多说,上代码,请多指教,勿喷哈!

void eeprom_write_byte(unsigned char H_addr,unsigned char L_addr,unsigned char data)//写入一个字节
{
   char Busy_flag;
   Busy_flag = I2caRegs.I2CSTR.bit.BB;//判断总线是否忙
   if(!Busy_flag)
   {   
        while(!I2caRegs.I2CSTR.bit.XRDY);
        I2caRegs.I2CSAR = 0x50; //AT24C64从器件地址,一定要注意了, 我当时就写错了,
                                                           //查 了好久才发现的。。。。囧
              I2caRegs.I2CCNT = 3;
                I2caRegs.I2CDXR = H_addr;
                I2caRegs.I2CMDR.all = 0x6E20;//在读写过程中只需要配一次就ok,我当时写一个字节就重新配一
                                                                             //次。。。。。走了好多弯路的说~
            while(!I2caRegs.I2CSTR.bit.XRDY);
                I2caRegs.I2CDXR = L_addr;
        while(!I2caRegs.I2CSTR.bit.XRDY);
            I2caRegs.I2CDXR = data;
   }
}
读数据跟写数据类似,只会更简单,就不上代码咯~~

相关帖子

沙发
zhangmangui| | 2014-8-19 22:58 | 只看该作者
你很棒!谢谢分享  

使用特权

评论回复
板凳
LENA989|  楼主 | 2014-8-24 22:09 | 只看该作者
呵呵,得到表扬,感觉自己萌萌哒

使用特权

评论回复
地板
wei3890836| | 2014-8-27 11:34 | 只看该作者
估计马上就会用到,谢谢分享

使用特权

评论回复
5
nowherenick| | 2014-8-27 15:28 | 只看该作者
期待更多的分享,加油

使用特权

评论回复
6
电子学习员| | 2014-9-3 08:58 | 只看该作者
:lol

使用特权

评论回复
7
edishen| | 2014-9-10 22:04 | 只看该作者
lz已经很棒啦 继续加油

使用特权

评论回复
8
123love| | 2015-5-30 15:11 | 只看该作者
想问一下 你的读取数据程序和I2C初始化程序是怎么设置的  

使用特权

评论回复
9
123love| | 2015-5-31 15:05 | 只看该作者
有完整的程序么

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

7

帖子

2

粉丝