当前位置: 首页 > news >正文

jquery+js网站模板免费下载几级分销属于合法

jquery+js网站模板免费下载,几级分销属于合法,wordpress视频调整,做彩票网站制作DMA简介 DMA(Direct Memory Access)直接存储器存取DMA可以提供外设和存储器或者存储器和存储器之间的高速数据传输,无须CPU干预,节省了CPU的资源12个独立可配置的通道:DMA1(7个通道),DMA2&#…

DMA简介

  • DMA(Direct Memory Access)直接存储器存取
  • DMA可以提供外设和存储器或者存储器和存储器之间的高速数据传输,无须CPU干预,节省了CPU的资源
  • 12个独立可配置的通道:DMA1(7个通道),DMA2(5个通道)
  • 每个通道都支持软件触发和特定的硬件触发
  • STM32F103C8T6 DMA资源:DMA1(7个通道)

存储器映像

DMA框架

总之就是CPU或者DMA直接访问Flash的话,是只可以读而不可以写的。

然后SRAM是运行内存,可以任意读写,没有问题

DMA基本结构

DMA进行转运,有几个条件:

第一:就是开关控制,DMA_Cmd必须使能。

第二:就是传输计数器必须大于零。

第三:就是触发源,必须有触发信号。

触发一次,转运一次,传输计数器自减一次。当传输计数器等于零,且没有自动重装时,这时无论是否触发,DMA都不会再进行转运了。此时就需要DMA_Cmd,给DISABLE,关闭DMA,再为传输计数器写入一个大于零的数。再DMA_Cmd,给ENABLE,开启DMA。DMA才能继续工作。


注意一下:写传输计数器时,必须要先关闭DMA,再进行,不能在DMA开启时,写传输计数器,这是手册里的规定

DMA请求:

数据宽度对齐

数据转运+DMA

ADC扫描模式+DMA

示例程序一:
源数组(DataA)、目标数组(DataB

DataA(源)和DataB(目标)。

  • 调用MyDMA_Transfer()启动DMA搬运。

  • MyDMA_Init():初始化DMA1通道1,配置为存储器到存储器模式,支持字节宽度和地址自增。

  • MyDMA_Transfer():启动DMA传输,等待传输完成并清除标志位。

  • MyDMA.h)声明DMA初始化和传输函数。

DMA配置要点

  • 时钟使能RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE)

  • 传输方向:外设(源)→ 存储器(目标)

  • 数据宽度:字节(DMA_PeripheralDataSize_Byte

  • 地址自增:使能(源和目标地址均自增)

  • 传输模式:正常模式(非循环)

  • 触发方式:软件触发(存储器到存储器模式)

  • 优先级:中等

工作流程

  1. 初始化DMA,但不立即启动。

  2. 主循环中更新DataA的值。

  3. 调用MyDMA_Transfer()启动DMA传输。

  4. DMA自动将DataA的数据搬运到DataB

  5. 等待传输完成标志位,清除标志。

  6. 在OLED上显示传输结果。

显示效果

  • 第1行:显示"DataA"及其地址。

  • 第3行:显示"DataB"及其地址。

  • 第2、4行:分别显示DataADataB的当前值(十六进制)。


适用场景:

  • 需要高效数据搬运的应用(如音频处理、图像传输、通信协议等)。

  • 希望减少CPU占用,提高系统响应能力的场景。


 

示例程序二

ADC(模数转换器)与DMA(直接存储器访问)结合,实现多通道模拟信号的连续采集与实时显示。
 

使用STM32的ADC模块,配合DMA实现多通道(4通道)模拟信号的自动采集,并将转换结果实时显示在OLED屏幕上。通过DMA传输,减少了CPU的干预,提高了系统的效率。

主要文件结构

1. main.c

  • 初始化OLED和ADC(含DMA配置)。

  • 在主循环中实时显示4个ADC通道的转换结果(AD_Value[0]~AD_3])。

  • 每100ms更新一次显示。

2. AD.c

  • AD_Init():初始化ADC1、GPIOA和DMA1。

  • 配置ADC为独立模式、连续转换、扫描模式,使用软件触发。

  • 配置DMA为循环模式,实现ADC数据的自动搬运到全局数组AD_Value

  • 执行ADC校准并启动转换。

3. AD.h

  • 声明外部变量AD_Value和初始化函数。

4. Key.c / Key.h

  • 按键初始化与读取函数,支持两个按键(PB1和PB11),带消抖处理。

5. LED.c / LED.h

  • LED初始化与控制函数,支持两个LED(PA1和PA2)的开关和翻转。

6. OLED.c / OLED.h / OLED_Font.h

  • OLED显示屏的I2C驱动,支持字符、字符串、数字(十进制、十六进制、二进制)显示。

ADC配置要点

  • 时钟配置:ADC时钟为12MHz(72MHz / 6)。

  • GPIO配置:PA0~PA3为模拟输入模式。

  • 规则组通道:配置4个通道,分别对应PA0~PA3。

  • ADC模式

    • 独立模式

    • 连续转换

    • 扫描模式

    • 右对齐数据

    • 软件触发

  • DMA配置

    • 循环模式

    • 外设地址固定(ADC数据寄存器)

    • 存储器地址自增(数组AD_Value

    • 半字宽度(16位)


工作流程

  1. 初始化后,ADC开始连续转换。

  2. 每次转换完成后,DMA自动将数据从ADC1->DR搬运到AD_Value数组中。

  3. 主循环中每隔100ms读取并显示AD_Value的4个值。

  4. 按键和LED模块可供其他功能扩展使用。


显示效果

  • 第1行:AD0: [值]

  • 第2行:AD1: [值]

  • 第3行:AD2: [值]

  • 第4行:AD3: [值]


使用场景

  • 多通道模拟信号采集(如传感器数据读取)
  • 实时数据监控系统
  • 低功耗、高效率的数据采集应用
http://www.dtcms.com/a/421854.html

相关文章:

  • c2c代表网站是什么长春网站建设设计
  • 精美网站建设公司网站的制作步骤包括
  • 甘肃省住房和城乡建设部网站首页深圳网站建设微信商城开发
  • 自己做的相册网站网络培训机构
  • 广州做网站厉害的公司wordpress 悬浮 登录
  • 电子版简历word格式沈阳优化网站公司
  • 寺院网站模板wordpress链接网页位置
  • 男子替人做网站网站wordpress优化网站打开速度
  • 中小型网站设计哪家好长春seo关键字排名优化
  • 百度网站如何做仿站多少钱
  • wordpress如何才能自己登陆进入自己的网站 进行修改呢wordpress 安装 数据库
  • 宠物网站开发背景中江移动网站建设
  • asp 公司网站网页制作与网站建设试题和答案
  • 婚纱影楼网站微商城网站建设信息
  • 新品销售网站建设店铺logo图片免费生成软件
  • 图案设计网站大全龙华网络推广公司
  • 萍乡做网站wordpress 怎么加入插件
  • 哪类公司做网站的最多手机网页下载的文件在哪里找
  • 专业网站建设常州交通工具网页界面设计
  • 做经营网站怎么赚钱企业小程序制作的公司
  • 北京网站设计济南兴田德润团队怎么样wordpress页面标题去除
  • 网站外链购买iis能搭WordPress
  • 动态图表网站vs网站开发 百度文库
  • 门户网站开发维护合同范本h5网站建设模板下载
  • 常见的网站开发工具请人做网站注意事项
  • eclipse做购物网站自己如何制作一个小程序
  • 网站做境外第三方支付手册 久久建筑网
  • 吉安律师网站建设wordpress云标签
  • 江苏公司网站建设公司在线查网站的ip地址
  • 河南省建设协会网站做公司网站写什么信息