STM32的DMA特性:
·每个通道都直接连接专用的硬件DMA请求,每个通道都同样支持软件触发。这些功能通多软件来配置。
·在七个请求间的优先权可以通过软件编程设置(共有四级:很高、高、中等和低),假如在相等优先权时由硬件决定(请求0优先于请求1,以此类推)。
·独立的源和目标数据区的传输宽度(字节8、半字16、全字32),模拟打包和拆包的过程。源和目标地址必须按数据传输宽度对齐。
·支持循环的缓冲器管理。
·每个通道都有3个事件标志(DMA半传输,DMA传输完成和DMA传输出错),这3个事件标志逻辑或成为一个单独的中断请求。
·存储器和存储器间的传输。
·外设和存储器,存储器和外设的传输。
·闪存、SRAM、外设的SRAM、APB1、APB2和AHB外设均可作为访问的源和目标。
·可编程的数据传输数目:最大为65536
STM32F103ZET6有两个DMA控制器,DMA1和DMA2
关键字:STM32 DMA 特性
引用地址:
STM32 DMA的特性
推荐阅读最新更新时间:2024-03-16 16:24
stm32 外部中断库函数实现全程分析
前题: 闭门造车,两周了,经过各种的思考和求问,反复阅读了 M3权威指南 和 stm32不完全手册 的相关章节,以及开发板厂商的实验例程,对stm32这块中断终有所悟,是以记之。 至于中断的什么优先级,什么优先级分组,使能之类的原理,就不再赘述。这里主要是记载以下如何使用中断,以及中断配置函数的实现过程,其中并叙述我曾经的疑惑和感悟。 我的开发板里的中断例程是用按键控制一个灯亮和灭的两个状态。 这个例程的实现过程如下描述: 第一步,将一个I/O口配置成中断输入模式。 这里需要注意的是,GPIO本身是没有中断功能神马的。如果硬要使他产生中断输入方式,就得将相应的端口映射到相应的外部事件上去。而
[单片机]
无刷直流马达的特性计算公式
无刷直流电机的运行特性 无刷直流电机的运行特性是指电机在起动、正常工作和调速等情况下,电机外部各可测物理量之间的关系。 电机是一种输入电功率、输出机械功率的原动机械。因此,我们最关心的是它的转矩、转速,以及转矩和转速随输入电压、电流、负载变化而变化的规律。据此,电机的运行特性可分为起动特性、工作特性、机械特性和调速特性。 讨论各种电机的运行特性时,-般都从转速公式、电动势平衡方程式、转矩公式和转矩平衡方程式出发。 无刷直流电机的特性计算需要考虑电机的电磁特性和机械特性两个方面。其中,电磁特性包括电机的电磁势、电磁转矩、电机的转速和电流等,机械特性包括电机的负载特性、转动惯量、转矩常数等。下面介绍一些常用的无刷直流电机特
[嵌入式]
S3C2440的camera接口特性及WinCE 下的驱动
S3C2440是应用十分广泛且适用于嵌入式系统的一款嵌入式处理器。winCE 5.0/6.O是微软公司开发的一款专用于嵌入式系统的实时操作系统。其模块化设计使开发人员可以根据需求定制设备。目前,国内大部分OEM商都提供了对S3C2440的camera接口在WinCE5.O/6.0下的驱动支持。遗憾的是,目前国内OEM商提供的驱动仅限于对几款微型摄像头(如ov9650等)的驱动支持。当用户采用CCD摄像头作为图像采集的前端设备时,原来的驱动已经不能使用了,而CCD摄像头因其优越的性能,在监控领域扮演着主力军角色。本文从分析S3C2440的camera接口特性出发,详细介绍当摄像设备为CCD摄像头时,在WinCE 5.O/6.0操
[单片机]
stm32中的系统滴答定时器使用
系统滴答定时器对于stm32的初学者来说还是非常重要的,因为随着你学习的深入编程过程中肯定会调用延时函数,比如我之前的一些gpio相关的实验中。那么延时函数的编写也是几种方法的,一般开始接触都是让系统循环等待,利用stm32处理程序所用的机器时间去延时。这种延时函数如下图所示: 很显然这是一个弊端很明显的做法,因为在延时函数进行时系统无法进行其它操作,这样大大降低了系统的效率。所以我们一般在编程中都会去利用定时器去定时。下面我就介绍下用系统滴答定时器的方法。 SysTick定时器(系统滴答定时器)是一个倒计时定时器,被捆绑在NVIC中,用于产生SYSTICK异常(异常号:15)。在以前,大多操作系统需要一
[单片机]
stm32可以跑Linux操作系统吗?
STM32是一款单片机,它由意法半导体公司制造。ST是意法半导体的简称,M是指微控制器(也就是单片机的)MCU的第一个英文字母,32是指32位的CPU,它的CPU是采用的ARM公司的Cortex-M系列的内核设计。 1. Cortex-M 的定位 ARM处理器的体系结构定义了指令集(ISA)和基于这一体系结构下处理器的模型。ARM的指令集从ARMv1发展到今天的ARMv9,每一次体系结构的修改都会添加实用技术。 图1 Armv7下的Cortex系列 在ARMv6之前,其内核指令集架构都是单一款式,但在ARMv7开始,其指令集架构变成3种款式,即目前大家熟知的Cotex-M、 Cotex-R、 Cotex-A,或者ARMv7
[单片机]
STM32——GPIO详细配置
一、STM32中GPIO模式的选择方法: (1)浮空输入_IN_FLOATING ——浮空输入,可以做KEY识别,RX1 (2)带上拉输入_IPU——IO内部上拉电阻输入 (3)带下拉输入_IPD—— IO内部下拉电阻输入 (4)模拟输入_AIN ——应用ADC模拟输入,或者低功耗下省电 (5)开漏输出_OUT_OD ——IO输出0接GND,IO输出1,悬空,需要外接上拉电阻,才能实现输出高电平。当输出为1时,IO口的状态由上拉电阻拉高电平,但由于是开漏输出模式,这样IO口也就可以由外部电路改变为低电平或不变。可以读IO输入电平变化,实现C51的IO双向功能 (6)推挽输出_OUT_PP ——IO输出0-接GND, IO输出1 -
[单片机]
一文搞懂STM32开发用的HAL库
前言 相比较早几年使用标准库开发来讲,最近几年HAL库的使用是越来越多,那么我们开发应当使用哪一种呢,本文着重介绍常用的几种开发方式及相互之间的区别,白猫也好、黑猫也好,抓到耗子就是好猫。 STM32三种开发方式 通常新手在入门STM32的时候,首先都要先选择一种要用的开发方式,不同的开发方式会导致你编程的架构是完全不一样的。一般大多数都会选用标准库和HAL库,而极少部分人会通过直接配置寄存器进行开发。 网上关于标准库、HAL库的描述相信是数不胜数。可是一个对于很多刚入门的朋友还是没法很直观的去真正了解这些不同开发发方式彼此之间的区别,所以笔者想以一种非常直白的方式,用自己的理解去将这些东西表述出来,
[单片机]
关于STM32正交编码的问题
程序的大致思路如下:两个定时器配置为编码器模式,用于小车的两个轮子编码脉冲计数,计数器向上或向下计数溢出,均在二者的中断函数中记录记录。还有一个定时器用作计时用,规定时间内进入中断,在中断函数中对数据进行处理。我用的光电码盘是100线的,在选择的计数模式下,转一圈产生400个计数脉冲。程序如下: double first_cnt,second_cnt,encoder_timer_overflow_sample; static volatile double encoder_timer_overflow; double rotor_speed = 0; unsigned char i = 0; //first_cnt是第一次读计数
[单片机]