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

📄 232.c

📁 TI MSP430 C语言 RS232通信程序代码
💻 C
字号:
#include <msp430x14x.h>
void Init_Usart1(void);
void Init_Adc12(void);
static unsigned int Adcbuffer;                 
static unsigned char Usartbuffer;

void main(void)
{
  WDTCTL=WDTPW+WDTHOLD;
  Init_Adc12();
  Init_Usart1();
  P3DIR = BIT5;
  P3OUT&=~BIT5;
  _EINT();
  while(1);
}

void Init_Adc12(void)
{
  P6SEL = BIT0;
  ADC12CTL0&=~ENC;                             //清除ENC位
  ADC12CTL0 |= ADC12ON+MSC+SHT0_6;             //多次转换模式,转换周期为128+13=141 
  ADC12CTL1 |= SHP+CONSEQ_2+ADC12SSEL_1;       //采样信号来自信号发生器,单通道多次转换,时钟来自ACLK
  ADC12MCTL1 = INCH_0;                         //选择输入通道0
  ADC12IE = BIT0;                              //允许ADC12IFG.0发生中断
}

void Init_Usart1(void)
{
  UCTL1&=~SWRST;
  UCTL1 = 0x10;
  UBR01 = 0x6D ;
  UBR11 = 0x00;
  UMCTL1 = 0x22;
  UTCTL1 = 0x10;
  ME2|=0x30;
  P3SEL |= BIT6+BIT7;
  IE2|=URXIE1;
}

#pragma vector = ADC_VECTOR
__interrupt void ADC12ISR(void)
{
  Adcbuffer = ADC12MEM0;                     //转换结果存入缓存
  Adcbuffer = Adcbuffer>>4;                //Adcbuffer的值右移4位
  Usartbuffer = Adcbuffer;
  TXBUF1 = Usartbuffer;
  while((UTCTL1&0x01)==0);
} 

#pragma vector=UART1RX_VECTOR
__interrupt void UART1RX(void)
{
  if(RXBUF1 == 0xff)
    P3OUT = BIT5;
    ADC12CTL0 |= ENC+ADC12SC;                //A/D转换开始
}

⌨️ 快捷键说明

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