您当前的位置:五五电子网电子知识单片机-工控设备源码-程序kinetis的UART串口(DMA模式) 正文
kinetis的UART串口(DMA模式)

kinetis的UART串口(DMA模式)

点击数:7762 次   录入时间:03-04 11:49:30   整理:http://www.55dianzi.com   源码-程序

    DMA_TCD1_BITER_ELINKNO = 100;

    DMA_TCD1_CSR = 0;

    DMA_TCD1_CSR &= ~DMA_CSR_INTMAJOR_MASK;

    DMA_TCD1_CSR |= DMA_CSR_DREQ_MASK;

    DMA_ERQ |= (1 << 1);//启动

    }

    int main(void)

    {

    int i;

    MCG_Init();

    dma0_init();

    dma1_init();

    UART_Init();

    for(i=0;i<100;i++)

    {

    uart_tx.buf[i] = i;

    uart_rx.buf[i] = 0;

    }

    uart_tx.index = 1;

    uart_rx.index = 0;

    printf("Hello (Kinetis) World in 'C' from MK60DX256Z derivative! nr");

    UART5_C2 |= 1<<3;

    for(;;)

    {

    }

    return 0;

    }

    void dam0_isr(void)

    {

    static unsigned char cnt=0;

    DMA_INT = 0x1; // clear dma int flag

    cnt++;

    MEMSet(uart_tx.buf,cnt,100);

    DMA_TCD0_SADDR = (unsigned long)&uart_tx.buf[0];//DMA源地址

    DMA_ERQ |= (1 << 0);//启动

    //与UART接收对应的DMA1未使用中断,在这里也同时对其重设目的地址并启动

    DMA_TCD1_DADDR = (unsigned long)&uart_rx.buf[0];

    DMA_ERQ |= (1 << 1);//启动

    }

    将“kinetis_sysinit.c”的“__vect_table”中16号中断“(tIsrFunc)UNASSIGNED_ISR”换成“(tIsrFunc)dam0_isr”



上一页  [1] [2] 


本文关键字:暂无联系方式源码-程序单片机-工控设备 - 源码-程序

《kinetis的UART串口(DMA模式)》相关文章>>>