STM32外设天造地设的一对:ADC和DMA

这篇具有很好参考价值的文章主要介绍了STM32外设天造地设的一对:ADC和DMA。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

STM32外设天造地设的一对:ADC和DMA

引言:这篇文章主要介绍ADC和DMA配置的注意事项,适合懂得如何配置最基本的ADC和DMA,但是对它们两个的模式不是太理解的朋友们看,本文将重点介绍ADC和DMA模式的注意事项


DMA是CPU的小助手,负责完成数据转运的任务,一般的数据转运可以在主函数完成,但是如果数据量巨大,就不适合在main函数中转运了,因为那样会占用大量CPU进程。
ADC(数模转换器,这可不是lol里面的射手哦)就是一个例子,ADC需要不断采集模拟信号,交给CPU处理,数据量巨大,所有ADC如果出现了,那一般都会给它配置一个DMA来完成数据转运。

STM32的ADC和DMA配置有一些注意事项,在此强调一下:


ADC配置的注意事项:

扫描和非扫描:

要注意ADC可以选择扫描和非扫描,如果同时需要采集多个引脚的模拟信号,那就选择扫描;如果只有一个引脚负责采集,那就选择非扫描

连续和单次
单次模式:

如果选择单次转换,那每次转换完成(这里的“转换完成指的是:如果选择扫描,那么所有通道都转换完成了,才算转换完成;如果选择非扫描,那转换一次就叫做转换完成”),都需要调用ADC_ClearFlag(ADCx,ADC_FLAG_EOC)函数来手动清除转换完成标志位,并且再调用ADC_SoftwareStartConvCmd(ADCx,ENABLE)函数来开启下一次转换(如果你需要的话)

连续模式

这个模式只需要在配置完ADC之后,调用一次ADC_SoftwareStartConvCmd(ADCx,ENABLE)函数,之后就会一直进行ADC转换,不需要手动清除ADC_FLAG_EOC标志位


DMA配置注意事项:

DMA配置的地址自增问题就不用多说了 ,大家应该都会
这里重点说以下三个问题:

第一,DMA请求映像:

stm32的DMA硬件触发必须和DMA通道对应,这就是请求映像,请求映像可以在手册中查到,配置DMA硬件请求必须参照这个映像表!

第二,DMA_M2M模式

  • // 如果DMA选择M2M,则当使能DMA之后,DMA会立刻以最快的速度完成转运任务,将传输计数器
    // 变为0。然后就不再转运,如果此时想再次让其转运,需要给传输计数器重新赋值,
    // STM32手册规定,给传输计数器赋值必须先失能DMA再赋值。完成这两个操作之后,再次使能
    // DMA会继续立刻触发DMA转运,以此类推

//  给DMA失能,赋值传输计数器,给DMA使能三个操作如下:
	DMA_Cmd(DMA1_Channel1,DISABLE);//DMA失能,因为只有在失能状态下,才能给传输计数器重新赋值
	DMA_SetCurrDataCounter(DMA1_Channel1,4);//给传输计数器重新赋值
	DMA_Cmd(DMA1_Channel1,ENABLE);//DMA使能
  • // 在此说明以下DMA选择M2M的一个注意事项:如果选择M2M,则一旦给DMA上电,DMA会以最快的速度传输完成。
    // 传输计数器也会相应地变为0了,如果选择传输计数器重装,那就会立刻再次触发DMA转运,然后再重装再转运,因此, 程序就会一直卡死在DMA转运。所以,千万要注意:
    // M2M模式下,禁止选择传输计数器重装

第三,DMA_M2M_Disable模式:

这个模式就是硬件触发DMA转运,比如定时器CCR事件触发(当CNT<CCR,REF的电平为低电平,与PWM模式1相反)要想成功触发,要做3件事情:文章来源地址https://www.toymoban.com/news/detail-626050.html

  1. 配置好相应的触发事件,例如配置好定时器的CCR事件(初始化时基单元,配置TIM_OCInitTypeDef结构体等步骤)
  2. 调用触发DMA的相关外设函数(例如TIM_DMA,ADC_DMA等等)
  3. DMA_InitTypeDef的成员DMA_M2M要选择DMA_M2M_Disable(非软件触发,即硬件触发)

到了这里,关于STM32外设天造地设的一对:ADC和DMA的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32的外设介绍

    我们主要学习的就是STM32的外设,通过程序配置外设来完成我们想要的功能。在这个表中,前两个深颜色的是位于杠M3内核里面的外设,剩下的都是内和外的外设。 NVIC(嵌套向量中断控制器) 这个是内核里面用于管理中断的设备,比如配置中断优先级这些东西。 SysTick(系统

    2024年02月09日
    浏览(24)
  • STM32外设系列—红外遥控

    🎀 文章作者:二土电子 🌸 关注文末公众号获取其他资料和工程文件! 🐸 期待大家一起学习交流! 红外遥控,顾名思义,就是利用红外线实现遥控。这里就不单独对红外线做介绍了,红外线的波长再可见光范围外,所以人眼是看不到的。红外遥控的原理就是利用红外线进

    2024年02月14日
    浏览(30)
  • STM32外设系列—OLED

    🎀 文章作者:二土电子 🌸 关注文末公众号获取其他资料和工程文件! 🐸 期待大家一起学习交流! OLED是开发时常用的显示器件,这里介绍的是0.96寸的四针脚OLED,IIC控制。 供电电压在3V~5V,用3.3V即可。 I2C通信接口由从地址位DC、I2C总线数据信号SDA(输出SDAOUT/D2输出,SD

    2024年02月13日
    浏览(32)
  • STM32之外设DMA

    DMA(Direct Memory Access)—直接存储器存取,是单片机的一个外设,它的主要功能是用来搬数据,但是不需要占用 CPU,即在传输数据的时候,CPU 可以干其他的事情,好像是多线程一样。数据传输支持从外设到存储器或者存储器到存储器,这里的存储器可以是 SRAM 或者是 FLAS

    2024年02月09日
    浏览(26)
  • STM32F103标准外设库——认识STM32(一)

     个人名片: 🦁作者简介:一名喜欢分享和记录学习的在校大学生 🐯个人主页:妄北y 🐧个人QQ:2061314755 🐻个人邮箱:2061314755@qq.com 🦉个人WeChat:Vir2021GKBS 🐼 本文由妄北y原创,首发CSDN 🎊🎊🎊 🐨座右铭:大多数人想要改造这个世界,但却罕有人想改造自己。 专栏导

    2024年01月15日
    浏览(33)
  • stm32之26.spi外设

                片选引脚(/ss/cs):chip select

    2024年02月10日
    浏览(34)
  • STM32外设GPIO(学习笔记)

    在编写stm32程序时,对寄存器进行操着需要知道每个外设的基地址,标准库的stm32f10x.h文件里也有各种外设的基地址。 比如GPIO:在定义输出数据寄存器地址GPIOA_ODR_Addr时,在GPIOA_BASE(GPIO端口A的基址地址)地址基础上偏移 在stm32f10x.h文件里面有定义GPIOA_BASE,是APB2PERIPH_BASE(

    2024年04月12日
    浏览(32)
  • STM32外设系列—BH1750

    🎀 文章作者:二土电子 🌸 关注文末公众号获取其他资料和工程文件! 🐸 期待大家一起学习交流! BH1750是一款数字型光照强度传感器,能够获取周围环境的光照强度。其测量范围在0~65535 lx。 lx勒克斯,是光照强度的单位。 BH1750可用于调节手机屏幕和键盘的背光功率,或

    2024年02月12日
    浏览(27)
  • STM32外设系列—DHT11

    🎀 文章作者:二土电子 🌸 关注文末公众号获取其他资料和工程文件! 🐸 期待大家一起学习交流! 更新记录 日期 更新内容 2023.10.27 2023.10.27 添加了DHT11复位程序、DHT11连接检测程序、DHT11初始化程序,修改了DHT11接收一个字节程序逻辑,更新了接收温湿度数据并校准的程序

    2024年02月15日
    浏览(28)
  • 【STM32】STM32学习笔记-I2C通信外设(34)

    I2C(Inter-Integrated Circuit)总线 是一种由NXP(原PHILIPS)公司开发的两线式串行总线,用于连接微控制器及其外围设备。多用于主控制器和从器件间的主从通信,在小数据量场合使用,传输距离短,任意时刻只能有一个主机等特性。 串行的 8 位双向数据传输位速率在标准模式下可

    2024年01月17日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包