📄 main.c
字号:
#include <msp430x24x.h>
int main( void )
{
WDTCTL=WDTPW+WDTHOLD; //关看门狗
BCSCTL1 =CALBC1_1MHZ; //设定DCO 为1MHZ
DCOCTL =CALBC1_1MHZ;
P1DIR |=BIT0; //LED 能使
P3SEL |=BIT1+BIT2; //p3.1 为UCB0SDA,P3.2 为UCB0SCL
UCB0CTL1 |=UCSSEL1; //时钟源选择smclk
UCB0BR1=0; //SMCLK/11
UCB0BR0=11;
UCB0CTL0 |=UCMST+UCSYNC+UCMODE1+UCMODE0; //选择I2C 主机模式
UCB0I2CSA=0x70; //设定从机地址为70H
UCB0CTL1 &=~UCSWRST; //进入I2C 工作模式
IE2 |=UCB0TXIE; //使能UCB0TX 发送中断
UCB0CTL1 |=UCTR+UCTXSTT; //发送起始位,并将主机设为发送模式
_BIS_SR(CPUOFF + GIE); //进入低功耗0
while(UCTXSTP&UCB0CTL1); //等待停止位发送完毕
_NOP();
for(;;);
}
void SendByte(sla) //发送器件子地址
{
UCB0TXBUF=0x10;
}
#pragma vector = USCIAB0TX_VECTOR //发送中断服务
__interrupt void i2c_tx_isr(void)
{
int send_data=0xFC;
UCB0TXBUF=send_data;
UCB0CTL1 |=UCTXSTP; //发停止位
IFG2 &=~UCB0TXIFG; //清发送标志位
_BIC_SR_IRQ(LPM0_bits); //发完退出低功耗
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -