dma.c

来自「msp430f169的dma flash程序」· C语言 代码 · 共 43 行

C
43
字号
#include "msp430x16x.h"
//本例程是利用串口接收数据,并使用DMA0通道进行存储.
void Init_clk() {
  char i;
  BCSCTL1=0x00;//XT2--ON
  do {
    IFG1&=~OFIFG;
    for(i=0;i<20;i++);
  }while(IFG1&OFIFG);
  BCSCTL2=SELM1+SELS;//XT2--MCLK,XT2--SMCLK
}

void Init_Urat1() {
  P5DIR=BIT5;
  P5OUT=BIT5;
  U1CTL=CHAR;//8bit数据宽度
  U1TCTL=SSEL1;//SMCLK串口时钟
  U1BR0=0x22;//4M晶振,115200波特率
  U1BR1=0x00;
  U1MCTL=0xED;
  ME2=URXE1+UTXE1;//使能接收与发送
  P3SEL=BIT6+BIT7;//配置串口端
  P3DIR|=BIT6;
}

void Init_DMA() {
  DMACTL0=DMA0TSEL_9;//配置触发源(URXIFG1)
  DMA0SA=U1RXBUF_;//配置源地址
  DMA0DA=0x300;//配置目标地址
  DMA0SZ=100;//数据长度
  DMA0CTL=DMADT_4+DMADSTINCR_3+DMADSTBYTE+DMAEN;//连续单字节传输,目标地址增1,目标存储格式(字符型),使能DMA0
}
  
void main( void )
{
  // Stop watchdog timer to prevent time out reset
  WDTCTL = WDTPW + WDTHOLD;
  Init_clk();
  Init_Urat1();
  Init_DMA();
  while(1);
}

⌨️ 快捷键说明

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