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

📄 fet430_dma_03.c

📁 msp430F435做的医疗器械,包括语音模块,知识源于网络
💻 C
字号:
//******************************************************************************
//  MSP-FET430P430 Demo - DMA0 Repeated Block UART 19200, TBCCR2, DCO
//
//  Description; DMA0 is used to transfer the string "Hello World" as a block 
//  byte-by-byte to the USART0 TXBUF. Timer_A operates in cont-mode from SMCLK/4 
//  and CCR2_IFG is used to trigger DMA0. After each complete block transfer, 
//  source and DMA size are reset to inital setting automatically using DMA 
//  transfer mode 4. 
//  ACLK = LFXT1/8 = 32768/8, MCLK = SMCLK = UCLK0 = DCOCLK = 1048576 MHz
//  Baud rate divider with 1048576Hz = 1048576Hz/19200 ~ 55 (0036h)
//  //*An external watch crystal on XIN XOUT is required for ACLK*//	  
//
//               MSP430FG439
//             -----------------
//         /|\|              XIN|-  
//          | |                 | 32kHz
//          --|RST          XOUT|-
//            |                 |
//            |             P2.4|------------> "Hello World"
//            |                 | 19200 - 8N1
//
//  M.Buccini
//  Texas Instruments, Inc
//  May 2004
//  Built with IAR Embedded Workbench Version: 2.21B
//******************************************************************************

#include  <msp430xG43x.h>

static char string1[] = { "Hello World\r\n" };

void Set_DCO(void);

void main(void)
{
  WDTCTL = WDTPW + WDTHOLD;             // Stop watchdog
  P2SEL = 0x30;                         // P2.4,5 = USART0 TXD/RXD
  FLL_CTL0 |= XCAP18PF;                 // set load capacitance for xtal
  
  ME1 |= UTXE0 + URXE0;                 // Enabled USART0 TXD/RXD
  UCTL0 |= CHAR;                        // 8-bit character, SWRST=1
  UTCTL0 |= SSEL1;                      // UCLK = SMCLK
  UBR00 = 0x36;                         // 19200 from 1Mhz
  UBR10 = 0x00;                         //
  UMCTL0 = 0x00;                        // No modulation
  UCTL0 &= ~SWRST;                      // Initialize USART state machine

  DMA0SA = (int)string1;                // Source block address
  DMA0DA = U0TXBUF_;                    // Destination single address
  DMA0SZ = sizeof string1 - 1;          // Block size (discard trailing 0)
  DMACTL0 = DMA0TSEL_1;                 // CCR2 trigger
  DMA0CTL = DMADT_4 + DMASRCINCR_3 + DMASBDB + DMAEN; // Rpt, inc src
  TACTL = TASSEL_2 + ID_2 + MC_2;       // SMCLK/2, cont-mode
       
  _BIS_SR(CPUOFF);                      // Enter LPM0
}

⌨️ 快捷键说明

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