DMA控制两路DAC同时输出
2024-04-03 13:07:06 5.71MB STM32F4 DMA
1
本例程在官方STM32F4例程的基础上,增加了使用滴答定时器对CPU搬运数据和DMA方式传送数据进行了比对,发现DMA方式传输速度快,而且在传输的过程中,CPU处于空闲状态,大大减少了CPU的负担。
2021-11-06 01:37:03 293KB STM32F4 DMA
1
使用探索者STM32F4开发板,实现ADC多通道采集数据+DMA,
目前STM32家族中有些系列支持DMA的双缓冲模式,比如STM32F2/STM32F4/STM32F7等系列。尤其随着人们对STM32F4/F7系列应用不断拓宽和加深,在设计中运用到DMA双缓冲的场合也越来越多。STM32芯片中的DMA又可分为两大类,一类是通用DMA,一类是专用DMA,比如用于USB,TFT LCD,ETHERNET等外设应用上的DMA。这里要谈的是基于通用DMA的话题,不妨以STM32F4系列芯片为例
2021-03-29 12:04:14 40KB STM32F  DMA双缓
1
调用了复位校准函数ADC_ResetCalibration()以及开始校准函数ADC_StartCalibration(),必须检查标志位等待校准完成,确保完成后才开始ADC转换.(建议是每次上电后都校准一次咯) ADC_SoftwareStartConvCmd(ADC1, ENABLE); 配置ADC1的模式为软件触发方式. 调用这个函数之后,ADC就开始进行转换了,每次转换完成后,由DMA控制器把转换从ADC数据寄存器(ADC_DR)中转移到变量ADC_ConvertedValue中,当DMA传输完成后,在main函数中使用 ADC_ConvertedValue的内容就是ADC的转换值了. 计算电压值: 在main函数中,ADC_ConvertedValueLoca是一个float类型变量,它保存了有转换值计算出来的电压值,计算的公式是ADC通用的 实际电压 = ADC转换值*LSB LSB为Vref+接的参考电压/ADC的精度( LSB =3.3/2的12次方) PS: 这里面ADC_ConvertedValue是用volatile修饰的,用 volatile 声明的类型变量表示可以被某些编译器未知的因素更改,比如:操作系统、硬件或者其它线程等。因为 ADC_ConvertedValue 这个变量值随时都是会被 DMA 控制器改变的,所以用 volatile 来修饰它,确保每次读取到的都是实时的 ADC 转
2019-12-21 20:51:01 45.05MB STM32F4  DMA AD
1
STM32F4 DMA双缓冲的正确打开方式,帮助大家更好了解STM32的双缓冲模式
2019-12-21 19:22:28 47KB stm32f4 dma 双缓冲 doublebuffer
1