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

📄 uart串口通信07.4.11.txt

📁 一般都可以用msp430x14x串口通信的程序,这次主要在msp430F149中调过了
💻 TXT
字号:
#include "msp430x14x.h"
void Init_CLK(void);
void init_uart(void);
//void uart_start(void);
//void uart_send(void);
//void uart_receive(void);
//unsigned char RXDATA_BUF[10],TXDATA_BUF[10]={0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a};
//unsigned int RX_count=0,TX_count=0,TXBUF_num=10,RXBUT_num=10,FLAG;

void Delay(unsigned long i)  //延时子程序
{
  while(i--);
}

char Data[6]="MSP430";
void main(void)
{   WDTCTL=WDTPW+WDTHOLD;
    Init_CLK();
    init_uart();
    _EINT();  
    TXBUF1=0xFF;
    while((UTCTL1&BIT0)==0);
    for(int i=0;i<=6;i++)
       {   Delay(20000);
           TXBUF1=Data[i];
           while((UTCTL1&BIT0)==0);
       }        
     while(1)
      {}
}

void Init_CLK(void)
{
 unsigned int i;
 BCSCTL1=0x00; //将寄存器BCSCTL1的内容清零、XT2振荡器开启、LFTX1工作在低频模式
               //ACLK的分频因子为1 
 do
 {
  IFG1&=~OFIFG;        //清除OSCFault标志
  for(i=0x20;i>0;i--);
 }
 
 while((IFG1&OFIFG)==OFIFG);
 
 BCSCTL2=0x00;  //将寄存器BCSCTL2的内容清零
 BCSCTL2+=SELM1;//MCLK的时钟源为XT2CLK,分频因子为1
 BCSCTL2+=SELS; //SMMLK的时钟源为XT2CLK,分频因子为1
}

void init_uart(void)                    //初始化UART
{   
                         //选择发送时钟源置位
    UCTL1|=SWRST;
    UCTL1|=CHAR;
    UTCTL1+=SSEL0;                     //选择时钟为ACLK
    UBR01=0x03;                         //波特率9600
    UBR11=0x00;
    UMCTL1=0x4A;
    UCTL1&=~SWRST;
    IE2&=~UTXIE1;      //在没有使用中断函数时,不允许UART1传输中断使能
    ME2|=UTXE1+URXE1;  //使能TXD
    IFG2=0X00;
    P3SEL|=0xC0;       // 将P3.6 P3.7使用外围模块 = USART1 TXD/RXD    
    P3DIR|=0x40;       // 将P3.4设为输出(发),P3.5默认为输入(收)   
}

/*
void uart_start(void)              
{  
    while((UTCTL1&BIT0)!=BIT0);
    TXBUF1=TXDATA_BUF[0];
}

void uart_send(void)              
{  

}

void uart_receive(void)          
{   
    RXDATA_BUF[RX_count]=RXBUF1;
    RX_count+=1;
    if(RX_count>=RXBUT_num) {RX_count=0;}
}

#pragma vector=UART1TX_VECTOR    
__interrupt  void uart_tx(void)
{   
 
}


#pragma  vector=UART1RX_VECTOR
__interrupt  void uart_rx(void)
{
    uart_receive();
} 
*/

⌨️ 快捷键说明

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