网站首页 全球最实用的IT互联网站!

人工智能P2P分享Wind搜索发布信息网站地图标签大全

当前位置:诺佳网 > 电子/半导体 > 控制/MCU >

STM32U5系列片内ADC1和ADC4实现过程(下)

时间:2023-07-30 09:30

人气:

作者:admin

标签:

导读:现在对ADC4基于DMA链表模式做演示,其实就一个节点。 选择ADC4的4个内部信号通道,扫描模式,连续转换,DMA传输转换结果,并令DMA工作在外设字到内存字的循环模式。使用CubeMx进行配置...

现在对ADC4基于DMA链表模式做演示,其实就一个节点。

选择ADC4的4个内部信号通道,扫描模式,连续转换,DMA传输转换结果,并令DMA工作在外设字到内存字的循环模式。使用CubeMx进行配置。其中DMA通道使用Channel 0。对于内部信号的采样,往往有最小采样时间要求,我这里的演示随便选了个参数,具体应用时请参考数据手册及当时ADC时钟具体拟定。特此提醒!

图片

关于DMA链表模式的配置在CubeMx界面里的Utility菜单下。

图片

图片

图片

相关用户代码:

/* Private variables ---------------------------------------------------------*/
ADC_HandleTypeDef hadc4;
DMA_NodeTypeDef Node_GPDMA1_Channel1;
DMA_QListTypeDef List_GPDMA1_Channel1;
DMA_HandleTypeDef handle_GPDMA1_Channel0;
/* USER CODE BEGIN PV */


/* USER CODE BEGIN 2 */


HAL_PWREx_EnableVddA(); //add it manually with lower cubeMx version


MX_ADC4Queue_Config();


__HAL_LINKDMA(&hadc4, DMA_Handle, handle_GPDMA1_Channel0);


HAL_DMAEx_List_SetCircularMode(&ADC4Queue);
    
if (HAL_DMAEx_List_LinkQ(&handle_GPDMA1_Channel0, &ADC4Queue) != HAL_OK)
{
Error_Handler();
}


if (HAL_ADC_Start_DMA(&hadc4,
(uint32_t *)ADC4_Result,
(ADC_BUFFRER_SIZE)
) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN WHILE */

结果验证【显示了2组数据】:

图片

最后还提醒下,如果CubeMx版本比较低时,HAL_PWREx_EnableVddA()函数需要自己手动添加。我目前CubeMx 6.9.0版本已经不用手动添加了,创建工程时会将其自动生成于相应位置。

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信