主题中讨论的其他器件: MSP430F47177
尊敬的所有人:
我的应用使用的是 I2C 主发送器模式。
在以下情况下,我会遇到问题:
1 -确认位丢失或负确认位被置位。
我无法找到,如何为 该否定确认编写中断服务例程 ,以及 将在其中编写服务例程的矢量地址是什么。
在数据表中,我还找到了 UCNACKIE (未确认中断使能) 位。 UCNACKIE 在负确认例程中的作用是什么。
此致、
Sameer Batra
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.
尊敬的所有人:
我的应用使用的是 I2C 主发送器模式。
在以下情况下,我会遇到问题:
1 -确认位丢失或负确认位被置位。
我无法找到,如何为 该否定确认编写中断服务例程 ,以及 将在其中编写服务例程的矢量地址是什么。
在数据表中,我还找到了 UCNACKIE (未确认中断使能) 位。 UCNACKIE 在负确认例程中的作用是什么。
此致、
Sameer Batra
Sameer、您好!
很抱歉、我不明白您的要求。 您是否已经参考了我们的 I2C 代码示例? 如果不是、我建议从它们开始。 此外,请查看我们 的《MSP430MCU 上常见 eUSCI 和 USCI 串行通信问题解决方案 》应用手册。
此主题可能对 UCNACKIE 有所帮助。
此致、
James
MSP 客户应用
Sameer、您好!
在下面链接的线程中、我看到您已将器件型号从 MSP430F477更改为 MSP430F47177。 您可以在 TI Resource Explorer 中找到 MSP430F47177的 I2C 代码示例。 这些示例可下载并导入到 CCS 中。
例如、您可以在 msp430x471x7_USCI_i2c_standard_master.c 代码示例的底部找到 NACK ISR。
// // I2C 中断用于启动、重启、NACK、停止******** // #if defined (__TI_Compiler_version__)|| defined (__IAR_systems_icc_) #pragma vector = USCIAB0RX_Vector __interrupt void USCIAB0RX_ISR (void) #Elif defined (__GNU__) void __attribute__((interrupt (USCIAB0RX_ISR)#vector (void) USCIA0RX_ICUICUICURX_ICURX_ICURX_ISR (void))#defineer_ICUICRx_ICUAR #endif { IF (UCB0STAT 和 UCNACKIFG) { UCB0STAT &=~UCNACKIFG; //清除 NACK 标志 } IF (UCB0STAT 和 UCSTPIFG) //停止或 NACK 中断 { UCB0STAT &= ~(UCSTTIFG + UCSTPIFG + UCNACKIFG); //清除启动/停止/ NACK 标志 } IF (UCB0STAT 和 UCSTTIFG) { UCB0STAT &=~(UCSTTIFG); //清除启动标志 } }
我看到 Clemens 在以下线程中帮助您处理了 NACK 中断、所以我要关闭这个线程。
MSP430F47177:USCIAB0RX、USCIAB0TX、USCIAB1RX、USCIAB1TX - MSP430中断