DSP28335通过I2C外扩M24M02存储多数据代码
时间: 2023-11-12 15:20:58 浏览: 32
以下是DSP28335通过I2C外扩M24M02存储多数据的代码,仅供参考:
#include "DSP2833x_Device.h"
#include "DSP2833x_Examples.h"
//定义I2C通信地址
#define I2C_SLAVE_ADDR 0x50
//定义存储数据的地址
#define DATA_ADDR 0x00
//定义存储数据的数量
#define DATA_NUM 10
//定义存储数据的缓存区
Uint16 data_buffer[DATA_NUM];
void main(void)
{
//初始化系统时钟
InitSysCtrl();
//初始化GPIO
InitGpio();
//初始化I2C
InitI2C();
//启用全局中断
EINT;
//清除I2C中断标志位
I2C_ClearIntFlag(I2C_INT_RX | I2C_INT_TX | I2C_INT_STOP);
//向M24M02写入多个数据
for (int i = 0; i < DATA_NUM; i++)
{
data_buffer[i] = i + 1; //填充数据
I2C_WriteData(I2C_SLAVE_ADDR, DATA_ADDR + i * 2, (Uint8 *)&data_buffer[i], 2); //写入数据
DELAY_US(1000); //延时1ms
}
//从M24M02读取多个数据
for (int i = 0; i < DATA_NUM; i++)
{
I2C_ReadData(I2C_SLAVE_ADDR, DATA_ADDR + i * 2, (Uint8 *)&data_buffer[i], 2); //读取数据
DELAY_US(1000); //延时1ms
}
//停止I2C通信
I2C_Stop();
//关闭全局中断
DINT;
//死循环
while (1);
}
//初始化I2C
void InitI2C(void)
{
//设置I2C时钟频率为100kHz
I2C_SetFreq(I2C_FREQ_100K);
//使能I2C外设时钟
I2C_EnablePeriphClk();
//配置I2C引脚
I2C_ConfigGpio();
//配置I2C为主模式
I2C_SetMaster();
//启用I2C中断
I2C_EnableInt();
//启用I2C
I2C_Enable();
}