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

[复制链接]
 楼主| wuyu40 发表于 2025-5-12 21:32 | 显示全部楼层 |阅读模式
<
本帖最后由 wuyu40 于 2025-5-23 16:31 编辑

#申请原创# STM32C092使用定时器启动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驱动。
在这个网址https://www.st.com.cn/zh/embedded-software/stm32cubec0.html下载面向STM32C0系列的STM32Cube MCU软件包(包含HAL、底层API和CMSIS、文件系统、RTOS - 以及在各类意法半导体开发板上运行的示例)
f374ad231946c72ca4cb63004a1ca46b
假设已经安装好 STM32CubeMX 和 STM32CubeC0 支持包。
Step1.打开 STM32CubeMX,点击“New Project”,选择芯片型号,STM32C092rct。在pinout界面设置ADC转换,比如ADC1使用IN1,对应引脚为PA1,时钟保持默认状态。
886ba2ef0b5641a70186dbb745c6ad18
c60daa10fb5e880daac5839eea05ba8d
ADC的启动信号和DMA设置很重要,需要使用定时器启动ADC转换如图:
1fbf569307be907cefd0d14cc5eb9a13
还需要设置DMA如图:
6823654e9a61735a770efa5b3826aa92
需要用time1的更新事件启动ADC,完成周期等基本设置再做如下设置:
1bdd5e50c8adb160fb12fc825d1dc091
初始化任务由CUBEMX自动完成:
在main()中添加代码:
/* 启动定时器*/
HAL_TIM_Base_Start(&htim1);
HAL_ADC_Start_DMA(&hadc1,&ADC_result,1);
  /* 启动ADC和DMA的链接通道*/
当然为了方便调试需要将uint32_t ADC_result;放到main()之前定义为全局变量;调试下载观察到
d29e8446c342b567a6c9c5f7ad0405b9
接线使用PA7接到一个光敏传感器,观察到转换结果,这里给出硬件接线图:
431f0986ca6ff709ae189884424d7008
用手遮挡光线,观察到转换结果变化。使用stm  studio软件观察ADC波形:
861af46165c333bd88e9913adc0659c1
当光源在光传感器附近时观察波形如图:
a8b42ed8ea735c73d8ad428fcfa8c969

AdaMaYun 发表于 2025-6-8 21:03 | 显示全部楼层
学习一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

64

帖子

1

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

16

主题

64

帖子

1

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