你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
philing-1270758 发表于 2016-10-23 17:44 ; J# }, v/ E" j" I. l- ]) k6 H$ THAL_ADC_Start_DMA(&hadc, ADC_ConvertedValue,2)这个2不是指通道吧?网上有的人说是指次数,我见到有人这 ...
philing-1270758 发表于 2016-10-23 17:44 0 f; P" U/ d( W' d x) B1 s' ?HAL_ADC_Start_DMA(&hadc, ADC_ConvertedValue,2)这个2不是指通道吧?网上有的人说是指次数,我见到有人这 ...
意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器。关注该话题即可发布文章!
对啊,我也看网上有人说是次数,你看的是微雪课堂这么写的吧?我是在这里看的
微雪课堂的那个我大部分我照着做了,能得出结果,但结果不对,而且微雪把次数设成100次之后,我后来给改成200次、500次,结果就不对了,不知道为什么,是不是这个100理解的有问题?
/* ADC1 DMA Init */
/* ADC1 Init *// c2 D5 p$ t" c3 v S
hdma_adc1.Instance = DMA1_Channel1;1 g6 x5 j' b+ ^( |) a: e
hdma_adc1.Init.Direction = DMA_PERIPH_TO_MEMORY;- ^- y" \% p. ~( u) R: g
hdma_adc1.Init.PeriphInc = DMA_PINC_DISABLE;
hdma_adc1.Init.MemInc = DMA_MINC_ENABLE;( E* d4 I3 b- J7 ^, I
hdma_adc1.Init.PeriphDataAlignment = DMA_PDATAALIGN_HALFWORD;
hdma_adc1.Init.MemDataAlignment = DMA_MDATAALIGN_HALFWORD;$ B1 X! @0 |! q: a$ ]5 G6 P* D
hdma_adc1.Init.Mode = DMA_NORMAL;1 c3 ~9 Q8 u& ]& m. l
hdma_adc1.Init.Priority = DMA_PRIORITY_HIGH;
if (HAL_DMA_Init(&hdma_adc1) != HAL_OK)
{
_Error_Handler(__FILE__, __LINE__);
}+ f P$ T9 A4 }# M& n
4 w n& ]% @. b" }2 X) ?
__HAL_LINKDMA(adcHandle,DMA_Handle,hdma_adc1);
2.存储的空间可以定义成uint32_t,word的数量可以要采集次数的一半:* R- T3 U9 b7 Z/ R8 ~$ D$ @( u% a
uint32_t uhADCxConvertedValue[131];9 D/ Q& d4 Q# L7 u0 j$ {2 ]# B! ?
3.启动DMA的时候,传入缓冲区的地址按(uint32_t *)传入。
HAL_ADC_Start_DMA(&hadc1, (uint32_t*)&uhADCxConvertedValue, 262);
4.这样进行了262次采样后,存放在uhADCxConvertedValue区域内的数据就是按16bit连续放过去的。! |0 b% \, h9 k3 j: {
测亲的结果分享的。
https://www.stmcu.org.cn/module/forum/thread-619778-1-1.html0 y; _4 X5 |) O; p
看到还望指点一二,谢谢!