亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? stm32f10x_dma.c

?? 萬利開發(fā)板上的lcd例程
?? C
?? 第 1 頁 / 共 2 頁
字號:
/******************** (C) COPYRIGHT 2007 STMicroelectronics ********************
* File Name          : stm32f10x_dma.c
* Author             : MCD Application Team
* Date First Issued  : 09/29/2006
* Description        : This file provides all the DMA firmware functions.
********************************************************************************
* History:
* 05/21/2007: V0.3
* 04/02/2007: V0.2
* 02/05/2007: V0.1
* 09/29/2006: V0.01
********************************************************************************
* THE PRESENT SOFTWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
* CONTENT OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
*******************************************************************************/

/* Includes ------------------------------------------------------------------*/
#include "stm32f10x_dma.h"
#include "stm32f10x_rcc.h"

/* Private typedef -----------------------------------------------------------*/
/* Private define ------------------------------------------------------------*/
/* DMA ENABLE mask */
#define CCR_ENABLE_Set          ((u32)0x00000001)
#define CCR_ENABLE_Reset        ((u32)0xFFFFFFFE)

/* DMA Channelx interrupt pending bit masks */
#define DMA_Channel1_IT_Mask    ((u32)0x0000000F)
#define DMA_Channel2_IT_Mask    ((u32)0x000000F0)
#define DMA_Channel3_IT_Mask    ((u32)0x00000F00)
#define DMA_Channel4_IT_Mask    ((u32)0x0000F000)
#define DMA_Channel5_IT_Mask    ((u32)0x000F0000)
#define DMA_Channel6_IT_Mask    ((u32)0x00F00000)
#define DMA_Channel7_IT_Mask    ((u32)0x0F000000)

/* DMA registers Masks */
#define CCR_CLEAR_Mask          ((u32)0xFFFF800F)

/* Private macro -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
/* Private function prototypes -----------------------------------------------*/
/* Private functions ---------------------------------------------------------*/

/*******************************************************************************
* Function Name  : DMA_DeInit
* Description    : Deinitializes the DMA Channelx registers to their default reset
*                  values.
* Input          : - DMA_Channelx: where x can be 1, 2 to 7 to select the DMA
*                    Channel.
* Output         : None
* Return         : None
*******************************************************************************/
void DMA_DeInit(DMA_Channel_TypeDef* DMA_Channelx)
{
  /* DMA Channelx disable */
  DMA_Cmd(DMA_Channelx, DISABLE);

  /* Reset Channelx control register */
  DMA_Channelx->CCR  = 0;
  
  /* Reset Channelx remaining bytes register */
  DMA_Channelx->CNDTR = 0;
  
  /* Reset Channelx peripheral address register */
  DMA_Channelx->CPAR  = 0;
  
  /* Reset Channelx memory address register */
  DMA_Channelx->CMAR = 0;

  switch (*(u32*)&DMA_Channelx)
  {
    case DMA_Channel1_BASE:
      /* Reset interrupt pending bits for Channel1 */
      DMA->IFCR |= DMA_Channel1_IT_Mask;
      break;

    case DMA_Channel2_BASE:
      /* Reset interrupt pending bits for Channel2 */
      DMA->IFCR |= DMA_Channel2_IT_Mask;
      break;

    case DMA_Channel3_BASE:
      /* Reset interrupt pending bits for Channel3 */
      DMA->IFCR |= DMA_Channel3_IT_Mask;
      break;

    case DMA_Channel4_BASE:
      /* Reset interrupt pending bits for Channel4 */
      DMA->IFCR |= DMA_Channel4_IT_Mask;
      break;

    case DMA_Channel5_BASE:
      /* Reset interrupt pending bits for Channel5 */
      DMA->IFCR |= DMA_Channel5_IT_Mask;
      break;

    case DMA_Channel6_BASE:
      /* Reset interrupt pending bits for Channel6 */
      DMA->IFCR |= DMA_Channel6_IT_Mask;
      break;

    case DMA_Channel7_BASE:
      /* Reset interrupt pending bits for Channel7 */
      DMA->IFCR |= DMA_Channel7_IT_Mask;
      break;

    default:
      break;
  }
}

/*******************************************************************************
* Function Name  : DMA_Init
* Description    : Initializes the DMA Channelx according to the specified
*                  parameters in the DMA_InitStruct.
* Input          : - DMA_Channelx: where x can be 1, 2 to 7 to select the DMA
*                    Channel.
*                  - DMA_InitStruct: pointer to a DMA_InitTypeDef structure that
*                    contains the configuration information for the specified
*                    DMA Channel.
* Output         : None
* Return         : None
******************************************************************************/
void DMA_Init(DMA_Channel_TypeDef* DMA_Channelx, DMA_InitTypeDef* DMA_InitStruct)
{
  u32 tmpreg = 0;

  /* Check the parameters */
  assert(IS_DMA_DIR(DMA_InitStruct->DMA_DIR));
  assert(IS_DMA_BUFFER_SIZE(DMA_InitStruct->DMA_BufferSize));	   
  assert(IS_DMA_PERIPHERAL_INC_STATE(DMA_InitStruct->DMA_PeripheralInc));  
  assert(IS_DMA_MEMORY_INC_STATE(DMA_InitStruct->DMA_MemoryInc));   
  assert(IS_DMA_PERIPHERAL_DATA_SIZE(DMA_InitStruct->DMA_PeripheralDataSize));
  assert(IS_DMA_MEMORY_DATA_SIZE(DMA_InitStruct->DMA_MemoryDataSize));
  assert(IS_DMA_MODE(DMA_InitStruct->DMA_Mode));
  assert(IS_DMA_PRIORITY(DMA_InitStruct->DMA_Priority));
  assert(IS_DMA_M2M_STATE(DMA_InitStruct->DMA_M2M));

/*--------------------------- DMA Channelx CCR Configuration -----------------*/
  /* Get the DMA_Channelx CCR value */
  tmpreg = DMA_Channelx->CCR;
  /* Clear MEM2MEM, PL, MSIZE, PSIZE, MINC, PINC, CIRCULAR and DIR bits */
  tmpreg &= CCR_CLEAR_Mask;
  /* Configure DMA Channelx: data transfer, data size, priority level and mode */
  /* Set DIR bit according to DMA_DIR value */
  /* Set CIRCULAR bit according to DMA_Mode value */
  /* Set PINC bit according to DMA_PeripheralInc value */
  /* Set MINC bit according to DMA_MemoryInc value */
  /* Set PSIZE bits according to DMA_PeripheralDataSize value */
  /* Set MSIZE bits according to DMA_MemoryDataSize value */
  /* Set PL bits according to DMA_Priority value */
  /* Set the MEM2MEM bit according to DMA_M2M value */
  tmpreg |= DMA_InitStruct->DMA_DIR | DMA_InitStruct->DMA_Mode |
            DMA_InitStruct->DMA_PeripheralInc | DMA_InitStruct->DMA_MemoryInc |
            DMA_InitStruct->DMA_PeripheralDataSize | DMA_InitStruct->DMA_MemoryDataSize |
            DMA_InitStruct->DMA_Priority | DMA_InitStruct->DMA_M2M;
  /* Write to DMA Channelx CCR */
  DMA_Channelx->CCR = tmpreg;

/*--------------------------- DMA Channelx CNBTR Configuration ---------------*/
  /* Write to DMA Channelx CNBTR */
  DMA_Channelx->CNDTR = DMA_InitStruct->DMA_BufferSize;

/*--------------------------- DMA Channelx CPAR Configuration ----------------*/
  /* Write to DMA Channelx CPAR */
  DMA_Channelx->CPAR = DMA_InitStruct->DMA_PeripheralBaseAddr;

/*--------------------------- DMA Channelx CMAR Configuration ----------------*/
  /* Write to DMA Channelx CMAR */
  DMA_Channelx->CMAR = DMA_InitStruct->DMA_MemoryBaseAddr;
}

/*******************************************************************************
* Function Name  : DMA_StructInit
* Description    : Fills each DMA_InitStruct member with its default value.
* Input          : - DMA_InitStruct : pointer to a DMA_InitTypeDef structure
*                    which will be initialized.
* Output         : None
* Return         : None
*******************************************************************************/
void DMA_StructInit(DMA_InitTypeDef* DMA_InitStruct)
{
/*-------------- Reset DMA init structure parameters values ------------------*/
  /* Initialize the DMA_PeripheralBaseAddr member */
  DMA_InitStruct->DMA_PeripheralBaseAddr = 0;

  /* Initialize the DMA_MemoryBaseAddr member */
  DMA_InitStruct->DMA_MemoryBaseAddr = 0;

  /* Initialize the DMA_DIR member */
  DMA_InitStruct->DMA_DIR = DMA_DIR_PeripheralSRC;

  /* Initialize the DMA_BufferSize member */
  DMA_InitStruct->DMA_BufferSize = 0;

  /* Initialize the DMA_PeripheralInc member */
  DMA_InitStruct->DMA_PeripheralInc = DMA_PeripheralInc_Disable;

  /* Initialize the DMA_MemoryInc member */
  DMA_InitStruct->DMA_MemoryInc = DMA_MemoryInc_Disable;

  /* Initialize the DMA_PeripheralDataSize member */
  DMA_InitStruct->DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte;

  /* Initialize the DMA_MemoryDataSize member */
  DMA_InitStruct->DMA_MemoryDataSize = DMA_MemoryDataSize_Byte;

  /* Initialize the DMA_Mode member */
  DMA_InitStruct->DMA_Mode = DMA_Mode_Normal;

  /* Initialize the DMA_Priority member */
  DMA_InitStruct->DMA_Priority = DMA_Priority_Low;

  /* Initialize the DMA_M2M member */
  DMA_InitStruct->DMA_M2M = DMA_M2M_Disable;
}

/*******************************************************************************
* Function Name  : DMA_Cmd
* Description    : Enables or disables the specified DMA Channelx.
* Input          : - DMA_Channelx: where x can be 1, 2 to 7 to select the DMA
*                    Channel.
*                  - NewState: new state of the DMA Channelx. 
*                    This parameter can be: ENABLE or DISABLE.
* Output         : None
* Return         : None
*******************************************************************************/
void DMA_Cmd(DMA_Channel_TypeDef* DMA_Channelx, FunctionalState NewState)
{
  /* Check the parameters */
  assert(IS_FUNCTIONAL_STATE(NewState));

  if (NewState != DISABLE)				  
  {
    /* Enable the selected DMA Channelx */
    DMA_Channelx->CCR |= CCR_ENABLE_Set;
  }
  else
  {
    /* Disable the selected DMA Channelx */
    DMA_Channelx->CCR &= CCR_ENABLE_Reset;
  }
}

/*******************************************************************************
* Function Name  : DMA_ITConfig
* Description    : Enables or disables the specified DMA Channelx interrupts.
* Input          : - DMA_IT: specifies the DMA interrupts sources to be enabled
*                    or disabled. 

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日日夜夜免费精品| 国产美女视频91| 久久久国际精品| 色悠悠久久综合| 极品瑜伽女神91| 一区二区三区中文免费| 久久久av毛片精品| 欧美高清视频不卡网| 不卡一区二区在线| 精彩视频一区二区| 亚洲chinese男男1069| 一区视频在线播放| 欧美精品一区二区三区蜜桃视频 | 欧美tickling挠脚心丨vk| 99视频国产精品| 国产91露脸合集magnet| 欧美aaaaa成人免费观看视频| 亚洲三级在线观看| 国产目拍亚洲精品99久久精品| 日韩欧美专区在线| 欧美伊人精品成人久久综合97 | 国产午夜一区二区三区| 51精品秘密在线观看| 91成人免费在线| 99精品视频一区二区三区| 国产精品一区二区你懂的| 男男视频亚洲欧美| 亚洲gay无套男同| 亚洲影视在线播放| 亚洲精品乱码久久久久久| 亚洲欧洲日韩综合一区二区| 日本一区二区视频在线| www国产精品av| 日韩欧美一二三四区| 欧美肥妇free| 欧美精品v国产精品v日韩精品| 色天天综合久久久久综合片| 成人国产电影网| 99久久伊人网影院| 99综合影院在线| 一本一本大道香蕉久在线精品| 暴力调教一区二区三区| 懂色中文一区二区在线播放| 国产精品一区二区男女羞羞无遮挡| 美女视频黄 久久| 日韩avvvv在线播放| 日韩av网站免费在线| 欧美a一区二区| 精品一二三四在线| 国产麻豆精品theporn| 国产精品888| 不卡的av在线播放| 99久久er热在这里只有精品66| 99久久精品国产观看| 日本久久一区二区三区| 欧美日韩在线不卡| 欧美二区乱c少妇| 日韩欧美国产系列| 久久久91精品国产一区二区精品| 久久久美女毛片| ...av二区三区久久精品| 亚洲色图视频免费播放| 亚洲成a人片综合在线| 麻豆精品一区二区三区| 国产一区二区三区综合| 成人18视频在线播放| 91蜜桃网址入口| 欧美美女激情18p| 日韩三级高清在线| 日本一区二区在线不卡| 一区二区三区日韩欧美| 午夜亚洲国产au精品一区二区| 蜜臀久久99精品久久久画质超高清| 精品无人区卡一卡二卡三乱码免费卡 | 日韩欧美精品在线视频| 国产欧美综合在线观看第十页| 中文字幕亚洲在| 亚洲电影第三页| 国产精品1区2区3区在线观看| 91麻豆产精品久久久久久 | 国产精品久久久久久一区二区三区| 中文字幕一区二区三区不卡| 亚洲一区二区视频| 九一九一国产精品| 91蜜桃在线观看| 欧美电视剧在线看免费| 亚洲欧洲av在线| 人人爽香蕉精品| 99精品视频在线观看| 日韩欧美成人激情| 亚洲精品综合在线| 精品亚洲国产成人av制服丝袜| 91亚洲永久精品| 久久久久久久久久久黄色| 亚洲影院理伦片| 床上的激情91.| 欧美一二区视频| 亚洲日穴在线视频| 国内精品国产三级国产a久久| 色欧美乱欧美15图片| 精品91自产拍在线观看一区| 亚洲综合色区另类av| 国产在线观看一区二区| 欧洲亚洲精品在线| 欧美激情资源网| 蜜臀久久久99精品久久久久久| 91麻豆国产精品久久| 久久综合狠狠综合久久综合88| 一区二区三区在线免费观看| 欧美日韩一卡二卡| 国产精品污www在线观看| 日韩专区中文字幕一区二区| 色欧美片视频在线观看| 国产精品伦理一区二区| 国产呦精品一区二区三区网站| 欧美精品第1页| 亚洲国产欧美在线| 色综合久久99| 国产精品国产精品国产专区不片 | 日韩午夜精品电影| 一区二区三区四区视频精品免费| 成人性生交大片免费| 久久这里都是精品| 久久精品国产精品亚洲精品| 7777女厕盗摄久久久| 亚洲国产精品久久人人爱蜜臀| 91美女片黄在线| 中文字幕中文字幕中文字幕亚洲无线| 国产麻豆精品95视频| 久久婷婷成人综合色| 久久精品国产亚洲aⅴ| 777奇米四色成人影色区| 一卡二卡三卡日韩欧美| 欧美曰成人黄网| 亚洲国产精品一区二区尤物区| 色狠狠色狠狠综合| 夜夜爽夜夜爽精品视频| 欧美色综合影院| 亚洲午夜日本在线观看| 欧美在线999| 视频一区视频二区中文字幕| 欧美日韩成人在线一区| 丝袜亚洲另类欧美综合| 91精品国产综合久久久蜜臀图片| 日韩电影一区二区三区| 欧美高清视频不卡网| 欧美一区二区三区四区五区 | 欧美日韩国产综合一区二区三区| 美女免费视频一区二区| 一区二区三区中文字幕在线观看| 一本色道久久综合精品竹菊| 国产精品一区二区三区网站| 一区二区成人在线视频| 国产色爱av资源综合区| 日韩激情视频网站| 久久精品二区亚洲w码| 国产一区日韩二区欧美三区| 欧美大黄免费观看| 国产精品一卡二卡在线观看| 国产亚洲欧美日韩日本| 99久久精品国产一区二区三区| 亚洲免费观看高清完整版在线观看 | 国产成人综合自拍| 国产精品亲子乱子伦xxxx裸| 91麻豆国产精品久久| 日韩激情av在线| 国产午夜精品久久久久久久| 99久久久国产精品免费蜜臀| 亚洲va国产天堂va久久en| 日韩女优毛片在线| 成人av电影在线网| 亚洲在线成人精品| 精品久久久三级丝袜| 成人精品高清在线| 午夜激情综合网| 国产人成亚洲第一网站在线播放 | 五月婷婷综合激情| 久久综合狠狠综合久久综合88| 99综合电影在线视频| 日韩激情一二三区| 国产精品久久久久久久久免费桃花| 91激情在线视频| 狠狠狠色丁香婷婷综合久久五月| 中文字幕一区二区三区在线不卡| 欧美日韩国产经典色站一区二区三区 | 国产高清亚洲一区| 亚洲网友自拍偷拍| 国产日韩影视精品| 欧美老女人在线| www.欧美日韩| 美女视频一区在线观看| 亚洲精品欧美综合四区| 久久一日本道色综合| 欧美日韩一区二区电影| 国产福利电影一区二区三区| 午夜精品久久久久久久99樱桃| 国产亚洲欧美一级| 日韩欧美激情一区| 欧美色图片你懂的| 成人禁用看黄a在线|