主题中讨论的其他器件:TMS320F280049、 ADS1248
大家好、
我正在尝试使用 TMS320F280049通过 I2C 协议与 ADS112C04通信。 作为起点、我编写了一个简单的代码以完成完整性检查、并附上 以下代码。 当我运行代码时、我没有从配置寄存器1获得预期的读取值、配置寄存器1是我在代码中配置的唯一寄存器。 有人能帮我解决这个问题吗?
#include"F28x_Project.h"
void main (void)
{
//初始化系统控制、GPIO 引脚、中断
uint16_t R1 = 0x0012;
uint16_t R2 = 0x0034;
uint16_t R3 = 0x0056;
uint16_t R4 = 0x0000;
InitSysCtrl();
InitGpio();
EALLOW;
GpioCtrlRegs.GPAGMUX2.bit.GPIO26 = 2;// I2CA_SDA
GpioCtrlRegs.GPAMUX2.bit.GPIO26 = 3;
GpioCtrlRegs.GPAQSEL2.bit.GPIO26 = 3;//输入限定:异步
GpioCtrlRegs.GPAPUD.bit.GPIO26 = 0;//上拉使能
GpioCtrlRegs.GPAGMUX2.bit.GPIO27 = 2;// I2CA_SCL
GpioCtrlRegs.GPAMUX2.bit.GPIO27 = 3;
GpioCtrlRegs.GPAQSEL2.bit.GPIO27 = 3;//输入限定:异步
GpioCtrlRegs.GPAPUD.bit.GPIO27 = 0;//上拉使能
GpioCtrlRegs.GPBGMUX2.bit.GPIO56 = 0;// IRQ_1
GpioCtrlRegs.GPBMUX2.bit.GPIO56=0;
EDIS;
I2caRegs.I2CMDR.bit.IRS = 0;// I2C 被禁用
I2caRegs.I2CPSC.bit.IPSC = 49;//系统时钟分频值
I2caRegs.I2CCLKL = 5;//低分频器
I2caRegs.I2CCLKH = 5;//高时间分频器
I2caRegs.I2CMDR.bit.MST = 1;//主控模式
I2caRegs.I2CMDR.bit.TRX = 1;//发送器模式
I2caRegs.I2CMDR.bit.BC = 0;//每个数据字节8位
I2caRegs.I2CCNT = 10;//数据计数
I2caRegs.I2CSAR.bit.SAR = 0x40;//从地址寄存器
I2caRegs.I2COAR.bit.OAR = 0x3C;// I2C 自有地址寄存器
I2caRegs.I2CMDR.bit.DLB = 0;//数字回路被启用
I2caRegs.I2CMDR.bit.FREE = 1;// I2C 以自由模式运行
I2caRegs.I2CMDR.bit.IRS = 1;// I2C 被启用
I2caRegs.I2CDXR.bit.data = 0x06;//复位命令
DELAY_US (1);
I2caRegs.I2CMDR.bit.STT = 1;//生成 START 信号
I2caRegs.I2CDXR.bit.data = 0x44;// WREG 命令和配置寄存器(CR 1)地址
//I2caRegs.I2CMDR.bit.STT = 1;//生成 START 信号
I2caRegs.I2CDXR.bit.data = 0x02;// CR 1数据
I2caRegs.I2CMDR.bit.STT = 1;//生成 START 信号
I2caRegs.I2CDXR.bit.data = 0x24;// RREG 命令和 CR 1地址
//I2caRegs.I2CMDR.bit.STT = 1;//生成 START 信号
R4 = I2caRegs.I2CDRR.bit.data;//数据接收操作
for (;;)
{
}
}
此致、
葡萄园






