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

📄 djtx.c

📁 485的msp430通讯,包括主机和从机的程序.多机通讯,例子是三个弹片机,可以扩展多个,硬件终端电阻要求120,
💻 C
字号:
#include "msp430x44x.h"
void Init(void);
void Tinit(void);
int Data[6]={0XFE,0XFD,0XFC,0XFB,0XFA,0XF9};
unsigned int i,j,p,COUNT=0;
void main(void)
{ 
  WDTCTL=WDTPW+WDTHOLD;
  FLL_CTL0&=0xBF ;
  P6DIR=0XFF;
  P6OUT=0X00;
  Init();
  Tinit();
  _EINT();    
  while(1);
}
void Init(void)
{
 UCTL1&=~SWRST;                    //SWRST复位,USART允许
 UCTL1=CHAR+MM;                    //8位数据位,1位停止位,地址位模式
 UBR01=0X03;
 UBR11=0X00;
 UMCTL1=0X4A;                      //使用32KHZ晶振时钟,波特率为9600BPS
 UTCTL1=SSEL0;                     //选定为ACLK为时钟源
 ME2|=UTXE1 + URXE1;               //UART1发送及接收模块允许
 P4SEL=BIT0+BIT1;                  //定义P4.0,P4.1口为发送及接收
 P4DIR|=BIT0+BIT2;                 //P4.0,P4.2是输出
 P4DIR&=~BIT1;
 P4OUT |=BIT2;
 }
 
void Tinit(void)
{
 TACTL = TASSEL0 + TACLR;              
 CCTL0 |= CCIE;  
 CCTL0 &=~CCIFG;                      
 CCR0 = 32768;                       
 TACTL |= MC0;         
}

interrupt[TIMERA0_VECTOR] void Timer_A (void)
{
  if(i<5)
   {if(COUNT==0)
    {
     UTCTL1|=TXWAKE;
     TXBUF1=0X01;
     while((UTCTL1&0X01)==0);
    }
   else
   {
    UTCTL1&=~TXWAKE;
    TXBUF1=Data[i++];
    while((UTCTL1&0X01)==0);
    }
    COUNT=1;
    }
   else
    {
    if(p==0)
     {
      UTCTL1|=TXWAKE;
      TXBUF1=0X02;
      while((UTCTL1&0X01)==0);
      p=1;
     }
    else
     {
      UTCTL1&=~TXWAKE;
      TXBUF1=Data[j++];
      while((UTCTL1&0X01)==0);    
      }
    }
    if(j>5)
    {
     i=0;
     j=0;
     COUNT=0;
     p=0;
     }
}

⌨️ 快捷键说明

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