导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→大家帮我看看以下i2c程序,为何不可

* 39479: 大家帮我看看以下i2c程序,为何不可

   cpchen 
cpchen发表的帖子 

 大家帮我看看以下i2c程序,为何不可
#include   <mega128.h>  

// I2C Bus functions
#asm
   .equ __i2c_port=0x12
   .equ __sda_bit=1
   .equ __scl_bit=0
#endasm
#include   <i2c.h>  
#include   <delay.h>  
#include   <stdio.h>  
#define EEPROM_BUS_ADDRESS 0x0ae 


/* 从EEPROM 读一个字节 */
unsigned char eeprom_read(unsigned char address) {
unsigned char data;
i2c_start();
i2c_write(EEPROM_BUS_ADDRESS);
i2c_write(address);
i2c_start();
i2c_write(EEPROM_BUS_ADDRESS | 1);
data=i2c_read(0);
i2c_stop();
return data;
}

/* 向EEPROM 写一个字节 */
void eeprom_write(unsigned char address, unsigned char data) {
i2c_start();
i2c_write(EEPROM_BUS_ADDRESS);
i2c_write(address);
i2c_write(data);
i2c_stop();
/* 10 延时等待写操作完成 */
delay_ms(10);
}

main()
{
/* 初始化I2C 总 线 */
i2c_init();
/* 从地址0到127 写入55h */
for(j=0;j  <128;j++)
  eeprom_write(j,0x55);
/* 从地址AAh 读一个字节 */
for(j=0;j  <128;j++)
  Read_EEPROM[j] = eeprom_read(j);
for(j=0;j  <128;j++)
  putchar(Read_EEPROM[j]);
while(1);
}

发表时间:2003年8月6日18:16:28

  
回复该帖

本主题共有 3 帖,分页:>>>>>该主题的所有内容[3]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

  39485.[详细][em05]数据发送后怎么没看到到应答信号呢?
摘要:[em05] 数据发送后怎么没看到到应答信号呢?......(42字)
- [trueL][1060次] 2003年8月6日

  61430.[详细]1.检查I2C的时序是否正确?起始条件建立时间大于4.7us延时(你的指令周期是。。。)2。你所用..
摘要:1.检查I2C的时序是否正确?起始条件建立时间大于4.7us延时(你的指令周期是。。。) 2。你所用的EEPROM的容量是否小于255个字节,如大于则应先发高字节。 3。还有。。。。 你把你的东东详细的讲一下,......(217字)
- [guest][1131次] 2004年9月1日

[上一篇帖子]:不需要,直接操作即可
[下一篇帖子]:哪位大侠做过LTP1245 打印机的51驱动?哪位大侠做过LTP1245 打印机