[活动专区] 【AT-START-F407测评】+TMR+DMA+ADC1实现等间隔采样内......

[复制链接]
816|0
 楼主| 纪国圣 发表于 2021-2-17 11:26 | 显示全部楼层 |阅读模式
AT32F407VG的ADC功能可谓十分丰富,与STM32F407系列的ADC相比不分伯仲。以下是两者的功能对比:
01.PNG 2.PNG 1.PNG
可以看出两者在功能上几乎没有区别。看到介绍AT32F407VG的ADC可由定时器触发,再联想到使能DMA搬运ADC采集的数据,于是结合官方例程ADC\Temperature和ADC\TMRTrigger_AutoInjection编写这个程序。
先看一下AT32F407VG的ADC1框图:
3.PNG
4.PNG
结合表格13-3可以看到,TMR1的CC1事件是触发ADC1转换的条件之一。
6.PNG
表格9-3可以看到,DMA1的通道1是ADC1数据传输的通道。
关于片内温度传感器的简介如下:
5.PNG
程序配置的流程如下:
7.PNG
因为采集片内温度传感器,所以GPIO_Configuration();不再参与编译。以上配置步骤和STM32的ADC开发流程相似,所以就不具体介绍了。注意DMA的DMA_Mode选择DMA_MODE_CIRCULAR,使能DMA1_Channel1的DMA_INT_TC,即采集固定数据完成后触发中断,在中断内拷贝数据,然后继续采集。
8.PNG
开启片内温度传感器一定要添加ADC_TempSensorVrefintCtrl(ENABLE);不然片内温度传感器不会启动。
9.PNG
通过开启TMR1及其CH1开始ADC1的采集;关闭TMR1结束ADC1的采集。
编译下载程序,效果如下:
测试.gif
程序如下:
TMR_DMA_ADC.zip (1.01 MB, 下载次数: 45)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

77

主题

407

帖子

5

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