Image
Image

范德萨发额

+ 关注

粉丝 2     |     主题 61     |     回帖 1012

stm32 DMA理论+实践
2024-4-9 12:11
  • ST MCU
  • 82
  • 1957
  这里首先是AD的配置  
  //adc.h文件 #ifndef __ADC_H #define __ADC_H #include "stm32f10x.h" extern uint16_t addr[2]; void ...  
  DMA多通道单次触发 OK打开我们之前写好的ADC的代码,将我们写的DMA的初始化加进去 整体代码如下,后面开 ...  
  ADC触发之后,信号给DMA,这时候DMA会帮助ADC进行数据转移,也就不会像之前说的那样,不管转换多少个通道 ...  
  首先还是看一下图  
  2 ADC扫描模式+DMA 这个是之前写过的一个ADC采集的后续了stm32f103 ADC采集_是小刘不是刘的博客-CSDN博客 ...  
  之后我们写主函数volatile uint32_t time = 0; // ms 计时变量 uint8_t Data1[]={0x01,0x02,0x03,0x14}; ...  
  ......  
  然后看了下中文参考手册,应该是翻译错了,因为的里面是1为清除  
  等待传输完成部分:等待传输完成的标志位为1退出循环 这里一般看有没有标志位主要是看参考手册:这里说了 ...  
  重置计数器部分,这里前面说过,DMA在开启的时候是不能更改计数器的值的,所以我们先失能之后更改完值重新 ...  
  函数分析  
  添加全局变量MyMDA_size 方便将传入的形参保存,后面好重新给计数器赋值 之后失能DMA只进行初始化,后面我 ...  
  2 改Init函数  
  代码如下 1 添加函数  
  4)DMA循环转移代码 首先我们上面说过,软件触发是不能配合重载的,所以转移一次之后就会停止,所以下一次 ...  
  结果(很明显看出,即使这里是吧data1的数据搬移到了data2但是1里面数据依然在,所以说是数据搬移,其实是 ...  
  声明两个数组,Data1里面有数据,2里面没有数据 调用MyDMA_Init()里面写入参数,第一个为传输个数,第二 ...  
  10 主函数  
  9 初始化结构体和使能DMA 将刚刚配置的参数,通过Init函数写入到DMA的配置中,之后开启cmd开启MDA传输数 ...  
2
3
近期访客