uart.c

来自「24位AD压力实验板 protell99se打开」· C语言 代码 · 共 62 行

C
62
字号

#include <msp430x14x.h> 

#include "uart.h"

unsigned char send_buffer1[30];
unsigned int send_num_data;
unsigned char re_buffer1[30];
unsigned int receive_num_data;
void  EN_uart(void)
{
   
   P3DIR|=BIT3;  
   P4DIR|=BIT0;  
   
   P3OUT|=BIT3;
   P4OUT&=~BIT0;
   
}
void  DIS_uart(void)
{
   P3DIR|=BIT3;  
   P4DIR|=BIT0;  
   //P3OUT|=(BIT3);
   P3OUT|=BIT3;
   P4OUT&=~BIT0;
}

void uart_init(void)
{
  DIS_uart();
  
  P3SEL |= 0x30;                            // P3.4,5 = USART0 TXD/RXD
  ME1 |= UTXE0 + URXE0;                     // Enable USART0 TXD/RXD
  UCTL0 |= CHAR;                            // 8-bit character
  UTCTL0 |= SSEL0;                          // UCLK = ACLK
  UBR00 =0x03;// /0x0D;                             // 32k/9600 - 13.65
  UBR10 = 0x00;                        //
  UMCTL0 = 0x4a;//0x6B;                            // Modulation
  UCTL0 &= ~SWRST;                          // Initialize USART state machine
  IE1 |= URXIE0;                            // Enable USART0 RX interrupt
}

void sent_byte(unsigned char data)
{
 while (!(IFG1 & UTXIFG0));                // USART0 TX buffer ready?
     TXBUF0 = data;                          // RXBUF0 to TXBUF0

}


// UART0 RX ISR will for exit from LPM3 in Mainloop
#pragma vector=UART0RX_VECTOR
__interrupt void usart0_rx (void)
{
  _BIC_SR_IRQ(LPM3_bits);                   // Clear LPM3 bits from 0(SR)
  re_buffer1[receive_num_data]=RXBUF0;
 receive_num_data++;
  
}

⌨️ 快捷键说明

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