[STM32C0] 【STM32C071RBT6测评】STM32C071RBT6使用定时器启动ADC通过DMA存储数据实验

[复制链接]
877|9
 楼主| wuyu40 发表于 2025-5-12 19:59 | 显示全部楼层 |阅读模式
STM32C071RBT6使用定时器启动ADC通过DMA存储数据实验
安装软件
数据表:https://www.st.com.cn/resource/en/data_brief/nucleo-c092rc.pdf
开发工具入门:https://www.st.com.cn/resource/zh/user_manual/um1727-getting-started-with-stm32-nucleo-board-software-development-tools-stmicroelectronics.pdf
STM32 的集成开发环境:https://www.st.com.cn/zh/development-tools/stm32cubeide.html
STM32Cube 初始化代码生成器(必须安装):https://www.st.com.cn/zh/development-tools/stm32cubemx.html
STM32CubeProgrammer 软件:https://www.st.com.cn/zh/development-tools/stm32cubeprog.html
要安装至少一个STM32Cube 初始化代码生成器(经过测试至少要在6.13版以上)SetupSTM32CubeMX-6.14.1-Win软件,可以使用MDK进行调试也可以使用STM32的集成开发环境(新版需要安装在win10,不兼容win7),需要安装stlink驱动。
ed26ba1092de53ced37aa2da3defc076
在这个网址https://www.st.com.cn/zh/embedded-software/stm32cubec0.html下载面向STM32C0系列的STM32Cube MCU软件包(包含HAL、底层API和CMSIS、文件系统、RTOS - 以及在各类意法半导体开发板上运行的示例)
82440fa00a8291250290af8ac1686fbd
假设已经安装好 STM32CubeMX 和 STM32CubeC0 支持包。
Step1.打开 STM32CubeMX,点击“New Project”,选择芯片型号,STM32C071rbt。在pinout界面设置ADC转换,比如ADC1使用IN7,时钟保持默认状态,点击GENERATE CODE自动生成初始化代码:
c8068c34279e9af1b56ba0eda8e22522
7c1414e7dd034bbaf4f079be5d57a11b
ADC的启动信号和DMA设置很重要如图:
2a4a6a531423d46b0950fbe9e11adfff
还需要设置DMA如图:
28592524e02ebae9805c833000bd347e
需要用time1的更新事件启动ADC,做如下设置:
d7fb0cda3746017d6defb4a41fe68e87
在main()中添加代码:
/* 启动定时器*/
HAL_TIM_Base_Start(&htim1);
HAL_ADC_Start_DMA(&hadc1,&ADC_result,1);
  /* 启动ADC和DMA的链接通道*/
当然为了方便调试需要将uint32_t  adcresult;放到main()之前定义为全局变量;调试下载观察到
644b09167bc74c4ea0f95a2ec1c857ab
接线使用PA7接到一个光敏传感器,观察到转换结果,这里给出硬件接线图:
efc6566df39ff5b572708306a5b14865
用手遮挡光线,观察到转换结果变化。

AdaMaYun 发表于 2025-6-8 21:02 | 显示全部楼层
使用定时器启动ADC通过DMA存储非常不错的案例
jimmhu 发表于 2025-6-10 10:55 | 显示全部楼层
在配置定时器时,是否需要特别注意某些参数的设置?
timfordlare 发表于 2025-6-10 14:00 | 显示全部楼层
在使用DMA存储数据时,如何优化数据处理速度和效率?
minzisc 发表于 2025-6-10 15:39 | 显示全部楼层
定时器触发ADC的具体时序关系是什么?
plsbackup 发表于 2025-6-10 18:54 | 显示全部楼层
如何通过错误回调函数重启ADC或保存部分有效数据?
juliestephen 发表于 2025-6-10 22:42 | 显示全部楼层
在使用定时器、ADC和DMA模块时,如何优化功耗管理?
sdCAD 发表于 2025-6-12 14:33 | 显示全部楼层
调试时发现采集的数据存在跳变,可能的原因有哪些
hearstnorman323 发表于 2025-6-12 15:00 | 显示全部楼层
如何避免中断处理时间过长导致下一次采样延迟?
gaochy1126 发表于 2025-6-26 16:08 | 显示全部楼层
STM32C071RBT6是基于哪个内核的产品?优势是什么      
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

73

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部