zoukankan      html  css  js  c++  java
  • Mini2440串口通信之DMA

    一、DMA介绍

    DMA(Direct Memory Access)是一种硬件单元,可以实现在不需要CPU的干预下直接实现内存与外设的数据交换,从而可以提高CPU的使用效率,2440有一个四通道的DMA。

    二、DMA设置框图

    Mini2440串口通信之DMA

    三、分步介绍

    char *buf = "Hello world!";//存储数据的源地址

    1、初始化

    ①、初始化源地址

    源地址是内存中的一段地址,用来存储于外设进行交换的数据,需要自己定义:

    image

    DISRC0 = (unsigned long *)buf;
    DISRCC0 = (0<<1) | (0<<0); //源地址为内存,自增

    image

    image
    image

    ②、初始化源地址

    目的地址一般就是外设中的一个用于存储数据的寄存器,对于UART就是UTXHn

    DIDST0 = UTXH0;//存放的是UTXH0的地址
    DIDSTC0 = (0<<2)|(1<<1)|(1<<0);//计数为0发生中断,目标地址为外设,不自增

    CHK_INT:

           a、 计数器TC(用于存储需要传输的数据长度)减之零时触发中断

           b、数据重载完成后触发中断

    image
    image

    image

    ②、设置DMA

    DCON0 = (0b001<<24) | (1<<23) | (1<<22) |(12<<0);

    image

    image

    image

    博客结尾图

  • 相关阅读:
    JSP 静态文件路径配置
    java 类拷贝
    spring security demo
    NYOJ-1057-寻找最大数(三)
    nyoj-1036-非洲小孩
    POJ-3617-Best Cow Line
    NYOJ-891-找点
    大平神出的一道双向链表题
    ZOJ-1360 || POJ-1328——Radar Installation
    POJ-2386-Lake Counting
  • 原文地址:https://www.cnblogs.com/TB-Go123/p/5266412.html
Copyright © 2011-2022 走看看