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

📄 0r1t.c

📁 MSP430
💻 C
字号:
#include<msp430x14x.h>
//收到串口0数据加上eaebec再通过串口1发出
unsigned char rx_flag0=0,rx_flag1=0;
unsigned int ecc=0;
unsigned char BUFF0[11]={0,0,0,0,0,0,0,0,0,0,0};
unsigned char BUFF1[11]={0,0,0,0,0,0,0,0,0,0,0};
void Init0(void);
void Init1(void);
void msp430_TX(void);
void msp430_TX(void)
{
 P4DIR|=0x10;//发送模式,P4.4置1,为输出
 P4DIR|=0x60;//P4.5,P4.6置1,为输出
 P4OUT|=0x20;//工作模式,P4.5输出1
 P4OUT|=0x40;//频率434
 P4OUT|=0x10;
}
/*端口初始化*/
void Inti_Port(void)
{
//将所有的管脚在初始化的时候设置为输入方式
P3DIR=0;
//将所有的管脚设置为一般I/0口
P3SEL=0;
return;
}
void Init0(void)
{
 UCTL0=CHAR;   
 UTCTL0=SSEL0;   
 UBR00=0x03; 
 UBR10=0x00; 
 UMCTL0=0x4A; 
 ME1|=URXE0;  
 IE1|=URXIE0; 
 P3SEL|=0x20;  
 P3DIR|=0x00;
//return;
}
void Init1(void)
{
 UCTL1=CHAR;   
 UTCTL1=0x10;   
 UBR01=0x03; 
 UBR11=0x00; 
 UMCTL1=0x4A; 
 ME2|=UTXE1;  
 //IE2|=UTXIE1; 
 P3SEL|=0x40;  
 P3DIR|=0x40;
//return;
 }

 /*接收*/
interrupt [UART0RX_VECTOR] void UART0_RX_ISR(void)
{
 BUFF0[rx_flag0]=RXBUF0;
 rx_flag0++;
 if(rx_flag0==11)
 {
 IE1&=~URXIE0;
 }
}

void main(void)
{ 
 unsigned int i,j=65535,k=0;
 WDTCTL=WDTPW+WDTHOLD;//关看门狗
 _DINT();
 P1DIR|=BIT0;
 Inti_Port();
 Init0();
 Init1();
 msp430_TX();
 IFG1&=0xBF;/*清除接收中断标志*/
 _EINT();/*使能中断*/
while(1)
 {
 
 IE1|=URXIE0;
 P1OUT=BIT0;
 while(!(rx_flag0==11));
  {
 _DINT();
 ecc=0xea;
 //UTCTL1&=~TXWAKE;
    TXBUF1=0xea;
 while((UTCTL1&0x01)!=0x01);// 等待直到没有数据发送,执行下一步
 IFG2&=0xDF;//清除发送中断标志位 
     TXBUF1=0xeb;
 while((UTCTL1&0x01)!=0x01);// 等待直到没有数据发送,执行下一步
 IFG2&=0xDF;//清除发送中断标志位 
   ecc=ecc^(0xeb);
    TXBUF1=0xec;
 while((UTCTL1&0x01)!=0x01);// 等待直到没有数据发送,执行下一步
 IFG2&=0xDF;//清除发送中断标志位 
   ecc=ecc^(0xec);
  for(i=0;i<11;i++)
  {
	TXBUF1=BUFF0[i];
    while((UTCTL1&0x01)!=0x01);
    ecc=ecc^BUFF0[i];
  }
 TXBUF1=ecc;
 while((UTCTL1&0x01)!=0x01);// 等待直到没有数据发送,执行下一步
 IFG2&=0xDF;//清除发送中断标志位 
 rx_flag0=0;
 //IE1|=URXIE0;
 
 _EINT();
  }
}

}

⌨️ 快捷键说明

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