DSP28335读写M24M02
时间: 2023-09-20 17:14:10 浏览: 165
M24M02是一款2M位串行EEPROM,它可以通过I2C总线进行读写操作。下面是DSP28335读写M24M02的步骤:
1. 配置I2C总线的时钟和引脚,使能I2C模块。
2. 初始化M24M02,包括设置写保护、地址长度等参数。
3. 向M24M02写入数据,可以使用单字节写入或者页面写入。在写入之前要先发送写入地址。
4. 从M24M02读取数据,可以使用单字节读取或者连续读取。在读取之前要先发送读取地址。
5. 关闭I2C模块。
下面是一个简单的DSP28335读写M24M02的代码示例:
```c
#include "DSP2833x_Device.h"
#include "DSP2833x_Examples.h"
#include "i2c.h"
#define M24M02_ADDR 0xA0 // M24M02芯片地址
void init_M24M02(void)
{
Uint16 i2c_data[2];
i2c_data[0] = 0x0000; // 写保护禁止
i2c_data[1] = 0x0000; // 页大小为64字节
i2c_write(M24M02_ADDR, 0x00, i2c_data, 2); // 发送配置数据
}
void write_M24M02(Uint16 addr, Uint16 data)
{
Uint16 i2c_data[2];
i2c_data[0] = (addr >> 8) & 0xFF; // 发送高位地址
i2c_data[1] = addr & 0xFF; // 发送低位地址
i2c_write(M24M02_ADDR, 0x00, i2c_data, 2); // 发送地址
i2c_data[0] = data; // 发送数据
i2c_write(M24M02_ADDR, 0x00, i2c_data, 1);
}
Uint16 read_M24M02(Uint16 addr)
{
Uint16 i2c_data[2];
i2c_data[0] = (addr >> 8) & 0xFF; // 发送高位地址
i2c_data[1] = addr & 0xFF; // 发送低位地址
i2c_write(M24M02_ADDR, 0x00, i2c_data, 2); // 发送地址
i2c_read(M24M02_ADDR, 0x00, i2c_data, 1); // 读取数据
return i2c_data[0];
}
void main(void)
{
InitSys
阅读全文