⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 msp430F22x4的C语言程序示例.
💻 C
字号:
#include "msp430x22x4.h"
/*此程序是USCIB0的I2C模式主机程序
首先按下图连接好导线,在启动主机程序前先启动从机程序
然后再启动主机程序,主机连续发送100个数据,当发完后在最后一个字节后加入停止位
                                 /|\  /|\
                MSP430x22x4     10k  10k    MSP430x22x4
                    slave         |    |        master
              -----------------   |    |  -----------------
            -|XIN  P3.1/UCB0SDA|<-|---+->|P3.1/UCB0SDA  XIN|-
       32kHz |                 |  |      |                 | 32kHz
            -|XOUT             |  |      |             XOUT|-
             |     P3.2/UCB0SCL|<-+----->|P3.2/UCB0SCL     |
             |                 |         |                 |
*/

char  send_data=0;
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=88;                           //设定从机地址为88
  UCB0CTL1 &=~UCSWRST;                    //进入I2C工作模式
  IE2 |=UCB0TXIE;                         //使能UCB0TX发送中断
  UCB0CTL1 |=UCTR+UCTXSTT;                //发送起始位,并将主机设为发送模式
  _BIS_SR(CPUOFF + GIE);                  //进入低功耗0
  while(UCTXSTP&UCB0CTL1);                //等待停止位发送完毕
  _NOP();
  for(;;);  
  return 0;  
}
#pragma vector = USCIAB0TX_VECTOR         //发送中断服务
__interrupt void i2c_tx_isr(void)
{
  if(send_data!=100)                      //发100个数据?
  {
    UCB0TXBUF=send_data;
    send_data++;
  }
  else                                    //100个数据发完则发送停止位
  {
    UCB0CTL1 |=UCTXSTP;                   //发停止位
    IFG2 &=~UCB0TXIFG;                    //清发送标志位
    _BIC_SR_IRQ(LPM0_bits);               //发完退出低功耗
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -