打印
[活动专区]

【AT-START-F407测评】+TMR+DMA+ADC1实现等间隔采样内......

[复制链接]
588|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
AT32F407VG的ADC功能可谓十分丰富,与STM32F407系列的ADC相比不分伯仲。以下是两者的功能对比:

可以看出两者在功能上几乎没有区别。看到介绍AT32F407VG的ADC可由定时器触发,再联想到使能DMA搬运ADC采集的数据,于是结合官方例程ADC\Temperature和ADC\TMRTrigger_AutoInjection编写这个程序。
先看一下AT32F407VG的ADC1框图:


结合表格13-3可以看到,TMR1的CC1事件是触发ADC1转换的条件之一。

表格9-3可以看到,DMA1的通道1是ADC1数据传输的通道。
关于片内温度传感器的简介如下:

程序配置的流程如下:

因为采集片内温度传感器,所以GPIO_Configuration();不再参与编译。以上配置步骤和STM32的ADC开发流程相似,所以就不具体介绍了。注意DMA的DMA_Mode选择DMA_MODE_CIRCULAR,使能DMA1_Channel1的DMA_INT_TC,即采集固定数据完成后触发中断,在中断内拷贝数据,然后继续采集。

开启片内温度传感器一定要添加ADC_TempSensorVrefintCtrl(ENABLE);不然片内温度传感器不会启动。

通过开启TMR1及其CH1开始ADC1的采集;关闭TMR1结束ADC1的采集。
编译下载程序,效果如下:

程序如下:
TMR_DMA_ADC.zip (1.01 MB)

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

77

主题

407

帖子

5

粉丝