你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

stm32f429 dma 中断问题

[复制链接]
请输入。 提问时间:2016-7-26 18:22 /
32的dma中断可以进  但是判断不了中断标志  然后就卡住了   
下面是dma的配置 和中断服务函数


  1. /* DMA2 Stream0 channel2 configuration **************************************/
  2.   DMA_InitStructure.DMA_Channel = DMA_Channel_2;  
  3.   DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)ADC3_DR_ADDRESS;
  4.   DMA_InitStructure.DMA_Memory0BaseAddr = (uint32_t)ADC3Value;
  5.   DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralToMemory;
  6.   DMA_InitStructure.DMA_BufferSize = 1000;
  7.   DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
  8.   DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;
  9.   DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Word;
  10.   DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Word;
  11.   DMA_InitStructure.DMA_Mode =DMA_Mode_Normal;
  12.   DMA_InitStructure.DMA_Priority = DMA_Priority_High;
  13.   DMA_InitStructure.DMA_FIFOMode = DMA_FIFOMode_Disable;         
  14.   DMA_InitStructure.DMA_FIFOThreshold = DMA_FIFOThreshold_HalfFull;
  15.   DMA_InitStructure.DMA_MemoryBurst = DMA_MemoryBurst_Single;
  16.   DMA_InitStructure.DMA_PeripheralBurst = DMA_PeripheralBurst_Single;
  17.   DMA_Init(DMA2_Stream0, &DMA_InitStructure);
  18.        
  19.         DMA_ITConfig(DMA2_Stream0, DMA_IT_TC ,ENABLE);

  20.         DMA_Cmd(DMA2_Stream0, ENABLE);
  21.        

  22.    
  23.     NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);                                                                                                         
  24.     NVIC_InitStructure.NVIC_IRQChannel = DMA2_Stream0_IRQn;          
  25.     NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;
  26.     NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2;       
  27.     NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  28.     NVIC_Init(&NVIC_InitStructure);
复制代码
  1. void DMA2_Stream0_IRQHandler()
  2. {
  3.        
  4.         if (DMA_GetITStatus(DMA2_Stream0,DMA_FLAG_TCIF0))
  5.         {
  6.                 if (dma_flag == 0)
  7.                 {
  8.                        
  9.                         dma_flag = 1;
  10.                         arm_copy_q31(ADC3Value,ADC3Voltage,1000);
  11.                 }
  12.                 DMA_ClearITPendingBit(DMA2_Stream0,DMA_FLAG_TCIF0);
  13.         }
  14.        
  15. }
复制代码



求大神帮忙啊~

收藏 评论1 发布时间:2016-7-26 18:22

举报

1个回答
请输入。 回答时间:2016-7-26 19:04:42
。。。找到问题了    是吧中断判断标志和读取标志弄混了   

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版