
STM32
文章平均质量分 94
minyuanxiani
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
在STM32F中使用UCOSII如何支持低功耗模式
在不在系统的裸奔的软件中,使用RTC+STOP模式很容易实现低功耗模式,但是在UCOS之类的操作系统,实现这一模式就有点麻烦,最大的问题是任务切换是无法控制的,经常出现唤醒之后程序跑飞的情况。首先,要把休眠的代码段放在低优先级任务中,不一定是系统自带的空闲任务,也可以是用户自定义的最低优先级的任务。其次,在休眠代码的前后加上两个指令://================================================================================转载 2020-10-30 11:36:19 · 746 阅读 · 0 评论 -
ARM分散加载文件
(一)原理ARM的连接器提供了一种分散加载机制,在连接时可以根据分散加载文件(.scf文件)中指定的存储器分配方案,将可执行镜像文件分成指定的分区并定位于指定的存储器物理地址。这样,当嵌入式系统在复位或重新上电时,在对CPU相应寄存器进行初始化后,首先执行ROM存储器的Bootloader代码,根据连接时的存储器分配方案,将相应代码和数据由加载地址拷贝到运行地址,这样,定位在RAM存储器的代码转载 2014-04-20 21:40:32 · 1027 阅读 · 0 评论 -
STM32F407之DMA
直接内存访问(DMA)是用来以提供外设和内存、内存和内存之间的高速数据传输的。数据可以在没有任何CPU干预下通过的DMA进行传输。这使得CPU资源更倾重与其他操作。 DMA控制器基于一个复杂的总线矩阵架构,结合了功能强大的双AHB主总线架构与独立的FIFO,以优化系统带宽。 两个DMA控制器共有16个数据流(stream),每个数据流可以编程与规定的通道中转载 2014-03-18 13:52:31 · 2844 阅读 · 0 评论 -
STM32F407之DAC
Stm32f4内嵌的DAC是12位数字输入,电压输出的数模转换器。DAC可以配置为8位或12位模式,也可以与DMA控制器配合使用。DAC工作在12位模式时,数据可以设置成左对齐或右对齐。DAC模块有2个输出通道,每个通道都有单独的转换器。在双DAC模式下,2个通道可以独立地进行转换,也可以同时进行转换并同步地更新2个通道的输出。DAC可以通过引脚输入参考电压VREF+以获得更精确的转换结果。转载 2014-03-18 14:00:56 · 6549 阅读 · 0 评论 -
STM32F407之 通用定时器
通用定时器(TIM2 to TIM5)包括由可编程的分频器驱动一个的16位或32位自动重载计数器。它们可用于多种用途,包括测量输入信号的脉冲长度(输入捕获)或生成的输出波形(输出比较和PWM)。可以使用定时器的预分频器和RCC时钟控制器分频器调制从几微秒到几毫秒的脉冲长度和波形周期。它们是完全独立的,不共享任何资源。 主要特点:通用TIMx定时器功能包括:转载 2014-03-18 13:54:20 · 1664 阅读 · 0 评论 -
stm32 DMA数据搬运 [操作寄存器+库函数]
DMA(Direct Memory Access)常译为“存储器直接存取”。早在Intel的8086平台上就有了DMA应用了。 一个完整的微控制器通常由CPU、存储器和外设等组件构成。这些组件一般在结构和功能上都是独立的,而各个组件的协调和交互就由CPU完成。如此一来,CPU作为整个芯片的核心,其处理的工作量是很大的。如果CPU先从A外设拿到一个数据送给B外设使用,同时C外转载 2014-03-18 16:30:37 · 3883 阅读 · 0 评论 -
STM32低功耗实验总结
1、 首先回答一个问题,STM32能不能做低功耗? 回答是肯定的,这个是有数据支持的,我测试的STM32101CB,FLASH:128K,RAM:16K并且RTC工作的情况下,测试到的功耗为16uA应该说还是相当不错的。 2、 STM32低功耗有哪些需要注意的地方? 一开始我测试到STM32为16uA的时候,还是非常高兴的,以为真的可以做为我的应用,我的应用是让MCU定时醒来干活,干一转载 2014-03-18 17:11:37 · 1780 阅读 · 0 评论 -
stm32 外部中断嵌套[操作寄存器+库函数]
stm32共有19个外部中断: 线0~15:对应外部I/O口的输入中断线16:连接到PVD输出。PVD(Programmable Votage Detector),即可编程电压监测器。作用是监视供电电压,在供电电压下降到给定的阀值以下时,产生一个中断,通知软件做紧急处理。当供电电压又恢复到给定的阀值以上时,也会产生一个中断,通知软件供电恢复。线17:连接到RTC实时时钟产生转载 2014-03-18 16:14:44 · 1951 阅读 · 0 评论 -
关于USART接收中断的BUG和注意事项
问题描述:在使用USART做串口通讯时,我只把接收中断打开,并设置抢占优先级为最低一个级别,而接收中断上一个优先级处理事情比较多,可能占用了2ms时间。当我使用9600波特率往下位机发送数据,速度非常快,就是一直按回车发!问题就出来,不到1分钟时间,通讯没有反应了。USART配置代码如下:void uart_config(void){ USART_InitTypeDef US转载 2014-03-20 10:50:51 · 879 阅读 · 0 评论 -
STM32之CAN--CAN ID过滤器分析
过滤器的过滤模式 STM32提供两种过滤模式供用户设置:屏蔽位模式和标识符列表模式。屏蔽位模式为了过滤出一组标识符,应该设置过滤器组工作在屏蔽位模式。 在屏蔽位模式下,标识符寄存器和屏蔽寄存器一起,指定报文标识符的任何一位,应该按照“必须匹配”或“不用关心”处理。标识符列表模式为了过滤出一个标识符,应该设置过滤器组工作转载 2014-04-03 15:29:24 · 3376 阅读 · 0 评论 -
STM32F407之EXTI
外部中断/事件控制器包括用于生成高达23个事件/中断的请求。每条中断线可独立配置选择类型(响应或挂起)和相应的触发事件(上升或下降或两者)。每一中断线可以独立屏蔽。有一个挂起寄存器维持中断线的状态请求。 EXTI线0~15连接到PX0~15(可编程配置)EXTI线16连接到PVD的输出事件EXTI线17连接到RTC报警事件EXTI线18连接的USB OTG FS唤醒转载 2014-03-17 22:18:06 · 1412 阅读 · 1 评论 -
STM32普通定时器(TIM2-7)的时钟源疑问
【问题】STM32F103的APB1最大总线时钟是AHB总线时钟的1/2,最大为36MHz,在用ST的库函数(v2.0)的时候,TIM2(普通定时器)的时钟频率为72MHz,不知道原因何在?【问题分析】STM32中有多达8个定时器,其中TIM1和TIM8是能够产生三对PWM互补输出的高级定时器,常用于三相电机的驱动,它们的时钟由APB2的输出产生。其它6个为普通定时器,时钟原创 2014-04-11 18:44:17 · 6506 阅读 · 0 评论 -
STM32的NVIC个人理解
STM32有43个channel的settable的中断源;AIRC(Application Interrupt and Reset Register)寄存器中有用于指定优先级的4 bits。这4个bits用于分配preemption优先级和sub优先级,在STM32的固件库中定义如下/* Preemption Priority Group ------------------------原创 2014-06-10 09:24:33 · 487 阅读 · 0 评论 -
STM32 IAP 在线升级
STM32很强大的一个功能是支持IAP在线升级,IAP(In-Application Programming),即在“应用程序中编程 ", 通俗的来将是程序自己可以往程序存储器里写数据或修改程序。有了IAP功能, 即使在产品发布之后也可以方便的通过预留的通信端口(如串口、USB、IIC等)对产品中的程序固件进行更新升级,而无需通过传统的JTAG方式做烧录更新。IAP功能的固件一般包含两个部分:B转载 2015-03-20 11:49:14 · 1022 阅读 · 0 评论 -
STM32 IAP 在线升级详解
(扩展-IAP主要用于产品出厂后应用程序的更新作用,考虑到出厂时要先烧写IAP 再烧写APP应用程序要烧写2次增加工人劳动力基础上写了“STM32 IAP+APP ==>双剑合一”链接稍后发)一、在进入主题之前我们先了解一些必要的基础知识----stm32系列芯片的种类和型号:startup_stm32f10x_cl.s 互联型的器件,STM32F105xx,STM32F转载 2017-09-11 10:39:42 · 908 阅读 · 0 评论 -
STM32 待机唤醒
3.12.1 STM32待机模式简介3.12.2 硬件设计3.12.3 软件设计3.12.4 下载与测试3.12.1 STM32待机模式简介 很多单片机都有低功耗模式,STM32也不例外。在系统或电源复位以后,微控制器处于运行状态。运行状态下的HCLK为CPU提供时钟,内核执行程序代码。当CPU不需继续运行时,可以利用多个低功耗模式来节省功耗,例如等待某转载 2014-03-19 17:24:18 · 4828 阅读 · 0 评论 -
STM32F407之CAN控制器
首先简单介绍一下CAN总线,关于CAN总线是谁发明的,CAN总线的历史,CAN总线的发展,CAN总线的应用场合,这些,通通不说。这里只是以我个人理解,简单说说CAN通信。CAN总线的端点没有地址(除非自己在帧里定义地址),CAN总线通信不用地址,用标识符,不是单独的谁发给谁,而是,你总是发送给整个网络。然后每个节点都有过滤器,对网络上的传播的帧的标识符进行过滤,自己想要什么样的帧,可以设置自己的过转载 2014-03-19 11:31:20 · 2669 阅读 · 0 评论 -
STM32F407之数字滤波
为了对stm32f4的ADC和DAC有更多的了解,我决定做一个实用性比较强的实验。就是数字滤波实验,利用stm32f4的DAC可以产生噪声的特点,利用它的一路DAC产生叠加噪声的信号作为原始信号。然后用ADC测量,把结果经过滤波处理后用DAC的另一通道把结果输出,用双踪示波器观察。 一阶惯性滤波器及其数字化一阶惯性滤波器的传递函数为:利用一阶差转载 2014-03-19 11:28:47 · 7392 阅读 · 8 评论 -
STM32F407之了解编程环境
前文再续,书接上一回,前面我们建立了一个文件夹,用来存放我们的工程,有建了三个文件夹,现在,分别解析一下这三个文件夹里放的是什么东西。 inc文件夹里放的是头文件,一共六个,以后我们自己的头文件也可以放到这里来。 stm32f4xx.h 包含了stm32f4的寄存器结构体的定义(类似于C51的reg52.h)core_转载 2014-03-17 21:23:42 · 817 阅读 · 0 评论 -
STM32F407之NVIC
中断向量嵌套控制器是用来管理所有中断和事件的,包括中断的使能和除能,中断的优先级。这个是属于内核的东西,所以ST的参考手册上对它的描述较少,但他又是十分重要的东西,要了解它就要看ARM的《Cortex™-M4 Devices Generic User Guide》。 相关寄存器译自《Cortex™-M4 Devices Generic UserGuide》,若有错误,请以原转载 2014-03-17 21:51:42 · 1147 阅读 · 0 评论 -
STM32F407之USART
STM32F407xx内嵌四个通用同步/异步接收器(USART1,USART2,USART3和USART6)和两个通用异步收发器(UART4和UART5)。这6个接口提供异步通信的IrDASIR ENDEC支持,多机通信模式,单线半双工通信模式LIN主/从功能。 USART1和USART6接口能够速度高达10.5 Mbit / s的通信其他可用的接口通信高达5.25bit/s。USART1,U转载 2014-03-17 22:22:32 · 1965 阅读 · 0 评论 -
STM32之CAN--中断管理浅析
1 前言bxCAN占用4个专用的中断向量。通过设置CAN中断允许寄存器(CAN_IER),每个中断源都可以单独允许和禁用。 图1从图1可以看出,最右边共四个中断,中断是可以通过CAN_IER来屏蔽或允许的。2 CAN中断允许寄转载 2014-03-17 20:56:08 · 1023 阅读 · 0 评论 -
STM32F407之GPIO
stm32f407VG这款单片机上共有PA-PE共5×16共80个复用IO口,每个通用I / O端口有4个32位配置寄存器(GPIOx_MODERGPIOx_OTYPER GPIOx_OSPEEDR GPIOx_PUPDR),两个32位数据寄存器(GPIOx_IDR和GPIOx_ODR),一个32位的置位/复位寄存器(GPIOx_BSRR),32位锁定寄存器(GPIOx_LCKR)和两个32位的备转载 2014-03-17 21:29:07 · 1723 阅读 · 0 评论 -
stm32 i2c通信 [操作寄存器+库函数]
I2C总线是由NXP(原PHILIPS)公司设计,有十分简洁的物理层定义,其特性如下:只要求两条总线线路:一条串行数据线SDA,一条串行时钟线SCL;每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机/从机关系软件设定地址,主机可以作为主机发送器或主机接收器;它是一个真正的多主机总线,如果两个或更多主机同时初始化,数据传输可以通过冲突检测和仲裁防止数据被破坏;转载 2014-03-18 16:06:55 · 2535 阅读 · 0 评论 -
stm32 独立看门狗[操作寄存器+库函数]
以单片机为核心的微型计算机系统中,单片机经常会受到来自外界电磁场的干扰。造成程序跑飞,只是程序的正常运行状态被打断而进入死循环,从而使单片机控制的系统无法正常工作。看门狗就是一种专门用于检测单片机程序运行状态的硬件结构。 stm32也是如此。 stm32 的独立看门狗由内部专门的40Khz低速时钟驱动,即使主时钟发生故障时,它也仍然有效。这里需要注意的是独立看门狗的时钟是一个内转载 2014-03-18 16:10:58 · 1859 阅读 · 0 评论 -
stm32 TIM定时器[操作寄存器+库函数]
stm32配备了2个高级定时器TIM1和TIM8,4个通用定时器 TIM2,TIM3,TIM4和TIM5,还有两个基本定时器TIM6和TIM7。 高级定时器常用于电机控制,因为其加入了死区控制,紧急制动,定时器同步等高级特性。基本定时器可以为数模转化器提供准确的时间基准。 stm32的通用定时器由一个通过可编程预分频器驱动的16位自动装载计数器构成。通用定时器可以用于测量输入信号的脉冲长度转载 2014-03-18 16:16:38 · 14578 阅读 · 0 评论 -
stm32 USART 串口通信[操作寄存器+库函数]
串口通信虽然在如今的电脑上使用的越来越少,因为其在通信速率,距离已经不适应pc的要求,取而代之的是USB口。但是在嵌入式领域,USART仍然广泛运用着。 stm32的最多可以提供5路串口,有分数波特率发生器、支持同步单线通信和半双工单线通信、具有DMA等。使用USART时,stm32的I/O口经RS232电平转换电路 和电脑的串口连接。 串口使用只需要开始串口时钟,设置相应的I转载 2014-03-18 16:21:33 · 15300 阅读 · 1 评论 -
stm32上最方便的定时器Systick
Systick 是stm32上一个用处很多的内设,所有基于arm-cortex m3 的芯片都有这个定时器,所以考虑到平台的可移植性时,可以多使用Systick。 Systick 是一个24位数据宽度的倒计数定时器,其计数范围只能到 1677215(2^24),当计数到0时会从RELOAD寄存器 中自动重装定时初值。只要不把SysTick的控制及状态寄存器中的使能位清除,计数器就不会停止。转载 2014-03-18 16:26:27 · 982 阅读 · 0 评论 -
stm32 AD模数转换[操作寄存器+库函数]
stm32f103最少有2个AD模数转换器,每个ADC都有18个通道,可以测量16个外部和2个内部模拟量。最大转换频率为1Mhz,也就是转换时间为1us(在 ADCCLK = 14Mhz,采样周期为1.5个时钟周期时)。最大时钟超过14Mhz,将导致ADC转换准确度降低。stm32的ADC是12位精度的。 stm32的ADC转换有两种通道,规则通道和注入通道,注入通道可以抢占式地打断规则通转载 2014-03-18 16:08:40 · 5239 阅读 · 1 评论 -
STM32F407之基本定时器TIM6&TIM7
基本定时器TIM6和TIM7包括一个由可编程分频器驱动的16位自动重载计数器。它可以用作普通的定时器,也可以用来驱动DAC。这两个定时器是完全独立的,不共享任何资源。更多时候是与DAC平配合使用。 作为定时器的配置步骤:1. 设置中断优先级分组(如果之前没有设置),这个最好一个程序里只在开头设置一次。2. 使能相关时钟转载 2014-03-18 13:55:37 · 6164 阅读 · 0 评论 -
STM32F407之ADC
12位ADC是一种逐次逼近型模拟数字转换器。它有多达19个通道,可测量16个外部和2个内部信号源和Vbat通道。各通道的A/D转换可以单次、连续、扫描或间断模式执行。ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器中。模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低阀值。有16个多路通道。 通道选择: 可以把转换组织成两组:规转载 2014-03-18 14:01:53 · 2571 阅读 · 0 评论 -
stm32 低功耗设计[操作寄存器+库函数]
stm32的低功耗模式有三种: 睡眠模式(内核停止,外设运行)停机模式(所有时钟都停止)待机模式(1.8V内核电源也关闭) 在这三种模式中,最低功耗的是待机模式,在此模式下,最低只需要2uA左右的电流。整个1.8V供电区被断电,PLL、HSI、HSE振荡器都被关闭。SRAM和寄存器内容丢失。停机模式是次低功耗的的,其典型的电流损耗在20uA左右。最后就是睡眠模式。转载 2014-03-18 15:54:28 · 3365 阅读 · 1 评论 -
STM32F407之创建IAR工程
首先介绍一下IAR。 IAR EmbeddedWorkbench for ARM是一套支持ARM所有处理器的集成开发环境,包含项目管理器、编辑器、C/C++编译器、汇编器、连接器和调试器。在IAR Embedded Workbench for ARM环境下可以使用C/C++和汇编语言方便地开发ARM嵌入式应用程序,比较其他的ARM开发环境,IAREmbedded Workb转载 2014-03-17 21:19:33 · 1842 阅读 · 0 评论