您好,
我正在尝试一个简单的主器件发送代码、如下所示。 我无法在逻辑分析仪上看到时钟信号。 有人能告诉我代码有什么问题吗?
#include "io430.h"
无符号字符 TxData = 0x5A;
int main( void )
{
//停止看门狗计时器以防止超时复位
WDTCTL = WDTPW + WDTHOLD;
// P6.0输出、检查电路板上电和 P5.5上的 smlck
P6DIR |= 0x01;
P6OUT |= 0x00;
P5DIR |= BIT5;
P5SEL |= BIT5;
//端口设置,端口3 sda-pin1和 scl-pin3
P3SEL |= 0x0A;
//强制初始化
U0CTL |= I2C + SYNC;
U0CTL &=~I2CEN;
//主配置
I2CNDAT = 0x01;
I2CSA = 0x0048;
//时钟设置
I2CTCTL |= I2CSSEL_2;
I2CPSC = 0x03;//
I2CSCLH = 0x03;
I2CSCLL = 0x03;
//中断设置
I2CIE |= TXRDYIE;
U0CTL |= I2CEN;
U0CTL |= MST;
I2CTCTL |= I2CSTT + I2CSTP + I2CTRx;
_enable_interrupt ();
}
#pragma vector=USART0TX_vector
_interrupt void I2C_ISR (void)
{
开关(I2CIV)
{
情况0:中断;//无中断
案例2:中断;//仲裁丢失
情况4:中断;//无应答
案例6:中断;//自有地址
案例8:中断;//寄存器访问就绪
案例10:中断;//接收就绪
情况12:
I2CDRB = TxData;// TX 数据
中断;//发送就绪
案例14:中断;//常规调用
案例16:中断;//开始条件
}
}