This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TMS320F2.8335万:I2C中断不分层

Guru**** 2341440 points
Other Parts Discussed in Thread: PCA9534
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/584952/tms320f28335-i2c-interrupt-not-trigering

部件号:TMS320F2.8335万
主题:PCA9534中讨论的其他部件

我有一个为I2C模块编写的驱动程序,该模块似乎正在向PCA9534端口扩展器发送正确的数据,但我很难让I2C中断正常工作。  下面是我的INIT函数,请告诉我我会做什么错误。

void I2CA_Init(void){

I2CBusReset(); // I2C线路的I/O控制以强制总线重置(11个时钟,然后是停止条件)

I2caRegs.I2CMDR.bit.IRS = 0;//重置I2C模块
I2caRegs.I2CPSC.ALL = 127; //预分频器-设置为高,因此数据速度较低,可以在我的示波器

InitI2CGpio()中看到;

I2caRegs.I2CCLKL =10; //注意:必须为非零
I2caRegs.I2CCLKH = 5; //注:必须为非零

I2caRegs.I2CIER.bit.ARDY = 1;//启用基本I2C-interrupt - access ready
I2caRegs.I2CIER.bit.nack = 1;//启用I2C nack中断:通信错误处理
I2caRegs.I2CIER.bit.SCD = 1; //启用停止条件中断

I2caRegs.I2CFFTX.ALL =0; //I2C传输FIFO寄存器
I2caRegs.I2CFFTX.Bit.TXFFIL =0;//将传输中断级别(位字段TXFFIL)设置为零
I2caRegs.I2CFFTX.Bit.I2CFFEN =1;//启用FIFO I2caRegs.I2CFFTX.Bit.TX.TX/IFRS.IFST
=

1;传输所有FIFO //I2C接收FIFO寄存器
I2caRegs.I2CFFRX.bit.RXFFIL =2;//当前的默认值,值将根据请求的内容而变化。
I2caRegs.I2CFFRX.bit.RXFFRST = 1;//启用FIFO接收器支持

I2caRegs.I2CFFRX.bit.RXFFIENA = 0;//禁用FIFO RXI2caRegs.I2CMDR.bit.BC=0

; // 8位数据
I2caRegs.I2CMDR.bit.rm=0; //非重复模式
I2caRegs.I2CMDR.bit.FDF=0;

Dint;
EALLOW;
PieVectorTable.I2CINT1A =&i2c_basic_ISR;//设置ISR例程

PieCtrlRegs.PIEIER8.bit.INTx1 =1; //启用中断
PieCtrlRegs.PIECTRL.bit.ENPIE =1; //启用PIE
PieCtrlRegs.PIEACK/bit.ACK8=1; //清除ACK位
IER |= M_INT8; //启用组8中断
I2caRegs.I2CFFTX.Bit.TXFFINTCLR =1; //清除任何挂起的中断
EDIS;
EINT;
I2caRegs.I2CMDR.bit.IRS = 1; //从重置
返回中取出I2C;
} 

问题是我从不进入ISR。  有什么想法?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    嗯,我明白了。 在另一个代码段中,我的SPI驱动程序为IER (IER =0x100)分配了一个值,而不仅仅是设置位(IER|=0x100)以启用其中断。 这导致禁用先前启用的SPI中断(使用IER |=0x080)。 我只是知道它在某处会变成一个不正确的位分配。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Andrew,

    感谢您发布问题的解决方案。
    (它始终是一位,也始终是您认为要查看的最后一位)