MCU
hisense_大致若愚
这个作者很懒,什么都没留下…
展开
-
STM32 的内部温度传感器
STM32 有一个内部的温度传感器,可以用来测量 CPU 及周围的温度(TA)。该温度传感器在内部和 ADCx_IN16 输入通道相连接,此通道把传感器输出的电压转换成数字值。温度传感器模拟输入推荐采样时间是 17.1μs。 STM32 的内部温度传感器支持的温度范围为:-40~125度。精度比较差,为±1.5℃左右。STM32 内部温度传感器的使用很简单,只要设置一下内部AD转载 2015-08-08 19:21:41 · 3101 阅读 · 0 评论 -
STM32F2xx的定时器说明
TIMER的时钟不是直接来源于APB1或者APB2,而是来自经过APB1或者APB2一个倍频器后的时钟。当APBx的预分频数为1时,这个倍频器不起作用,此时定时器的时钟频率等于APBx的频率;当APBx倍频数为其他数值时(即预分频数位2,4,8,16时),这个倍频数起作用,定时器时钟为APBx的两倍。例如AHB=60MHz,APB1为AHB的2分频,即为30MHz,则挂载在APB1下的时钟的频率为转载 2015-10-13 21:34:05 · 3830 阅读 · 0 评论 -
stm32中断优先级
一,中断优先级: STM32(Cortex-M3)中的优先级概念 STM32(Cortex-M3)中有两个优先级的概念——抢占式优先级和响应优先级,有人把响应优先级称作'亚优先级'或'副优先级',每个中断源都需要被指定这两种优先级。具有高抢占式优先级的中断可以在具有低抢占式优先级的中断处理过程中被响应,即中断嵌套,或者说高抢占式优先级的中断可以嵌套低抢占式优先级的中断。 当两个转载 2015-12-07 10:27:26 · 450 阅读 · 0 评论 -
stm32f207 栈溢出
今天搞的一个stm32 的程序发生了错误。全局变量遭到了局部变量的篡改。新手感觉很奇特。看了一些资料,发现时栈区设置太小所导致的,全局变量向上生长,栈区向下生长。stm32的栈顶是程序自动生成的(暂时是这么认为的,有待进一步确定),程序会地洞生成栈顶。并且栈底和全局变量区是紧挨的,因此如果栈溢出的话,会直接将全局变量去的地址拿来自己用,于是全局变量区的地址和栈区的地址重合,导致全局变量遭到局部转载 2015-12-07 17:21:48 · 1147 阅读 · 0 评论 -
stm32 RO RW ZI
一直以来对于ARM体系中所描述的RO,RW和ZI数据存在似是而非的理解,这段时间对其仔细了解了一番,发现了一些规律,理解了一些以前书本上有的但是不理解的东西,我想应该有不少人也有和我同样的困惑,因此将我的一些关于RO,RW和ZI的理解写出来,希望能对大家有所帮助。要了解RO,RW和ZI需要首先了解以下知识:ARM程序的组成此处所说的“ARM程序”是指在ARM系统中正在执行的程序,而非保转载 2015-12-07 17:25:55 · 603 阅读 · 0 评论 -
STM32 IAP 在线升级
(扩展-IAP主要用于产品出厂后应用程序的更新作用,考虑到出厂时要先烧写IAP 再烧写APP应用程序要烧写2次增加工人劳动力基础上写了“STM32 IAP+APP ==>双剑合一”链接稍后发)一、在进入主题之前我们先了解一些必要的基础知识----stm32系列芯片的种类和型号:startup_stm32f10x_cl.s 互联型的器件,STM32F105xx,STM32F107xx转载 2016-03-22 05:16:50 · 992 阅读 · 0 评论 -
STM32 IAP+APP
(扩展-IAP主要用于产品出厂后应用程序的更新作用,上一篇博文详细的对IAP 升级程序做了详细的分析http://blog.csdn.net/yx_l128125/article/details/12992773,考虑到出厂时要先烧写IAP 再烧写APP应用程序要烧写2次增加工人劳动力基础上写了“STM32 IAP+APP ==>双剑合一”链接稍后发,希望通过IAP程序的hex 文件 和 A转载 2016-03-22 05:19:40 · 1153 阅读 · 0 评论 -
STM32的bootloader IAP编程
不需要拆机就能对产品进行固件升级是很多人想要的效果,不仅方便而且节省精力和成本。那么如何完成这项工作呢?接下来所介绍的Bootloader就可以完成这项工作,通过Bootloader引导程序完成固件的升级。下面来浅析STM32Bootloader设计。首先谈谈stm32的ISP和IAP区别和联系。ISP(In-System Programming)在系统可编程,指电路板上的空白器件可以转载 2016-03-22 07:55:34 · 1295 阅读 · 0 评论 -
在KEIL realview MDK下为单一C文件生成.LIB文件
在KEIL realview MDK下为单一C文件生成.LIB文件 查了一个下午,竟然没有一个网页完整的说清楚的这个问题,莫非太简单了大家不屑于说?看大多数说的都是简单地将整个工程转换成.LIB,在Project->Options for Target->Output下,选择Create Library,就可以了。 不过这样生成的lib文件巨大,我现在编译的工程最后生成的lib转载 2016-03-10 16:04:54 · 358 阅读 · 0 评论 -
PWM死区
死区,简单解释:通常,大功率电机、变频器等,末端都是由大功率管、IGBT等元件组成的H桥或3相桥。每个桥的上半桥和下半桥是是绝对不能同时导通的,但高速的PWM驱动信号在达到功率元件的控制极时,往往会由于各种各样的原因产生延迟的效果,造成某个半桥元件在应该关断时没有关断,造成功率元件烧毁。死区就是在上半桥关断后,延迟一段时间再打开下半桥或在下半桥关断后,延迟一段时间再打开上半桥,从而避免功率元件烧毁转载 2015-08-08 19:04:47 · 1571 阅读 · 0 评论 -
STM32F2xx的定时器的应用
定时器计数值的确定。 TIMER的时钟不是直接来源于APB1或者APB2,而是来自经过APB1或者APB2一个倍频器后的时钟。当APBx的预分频数为1时,这个倍频器不起作用,此时定时器的时钟频率等于APBx的频率;当APBx倍频数为其他数值时(即预分频数位2,4,8,16时),这个倍频数起作用,定时器时钟为APBx的两倍。例如AHB=60MHz,APB1为AHB的2分频,即为30MHz,转载 2015-08-10 16:48:14 · 567 阅读 · 0 评论 -
STM32 IO 简介
控制 STM32 开发板上的两个 LED实现一个类似跑马灯的效果,在固件库中,GPIO 端口操作对应的库函数函数以及相关定义在文件stm32f10x_gpio.h 和stm32f10x_gpio.c 中。STM32 的 IO口相比 51 而言要复杂得多,所以使用起来也困难很多。 首先 STM32的 IO 口可以由软件配置成如下 8种模式:1、输入浮空2、输入上拉转载 2015-08-08 19:26:47 · 625 阅读 · 0 评论 -
通用定时器作为输入捕获
嵌入式通用定时器作为输入捕获的使用。我们将用 TIM5 的通道 1 (PA0)来做输入捕获,捕获PA0 上高电平的脉宽(用 WK_UP 按键输入高电平),通过串口打印高电平脉宽时间输入捕获简介输入捕获模式可以用来测量脉冲宽度或者测量频率。STM32 的定时器,除了 TIM6 和 TIM7,其他定时器都有输入捕获功能。STM32的输入捕获,简单的说就是通过转载 2015-08-08 19:24:32 · 1690 阅读 · 0 评论 -
STM32 时钟系统
众所周知,时钟系统是CPU 的脉搏,就像人的心跳一样。所以时钟系统的重要性就不言而喻了。 STM32 的时钟系统比较复杂,不像简单的 51 单片机一个系统时钟就可以解决一切。于是有人要问,采用一个系统时钟不是很简单吗?为什么STM32 要有多个时钟源呢? 因为首先STM32 本身非常复杂,外设非常的多,但是并不是所有外设都需要系统时钟这么高的频率,比如看门狗以及RTC 只需要几转载 2015-08-08 19:16:57 · 445 阅读 · 0 评论 -
ARMv7的各种架构版本介绍
基于从ARMv6开始的新设计理念,ARM进一步扩展了它的CPU设计,成果就是ARMv7架构的闪亮登场。在这个版本中,内核架构首次从单一款式变成3种款式。一、款式A:设计用于高性能的“开放应用平台”——越来越接近电脑了二、款式R:用于高端的嵌入式系统,尤其是那些带有实时要求的——又要快又要实时。三、款式M:用于深度嵌入的,单片机风格的系统中。让我们再进距离地考察这3种转载 2015-08-08 19:22:31 · 8982 阅读 · 0 评论 -
STM32 NVIC 中断优先级管理
CM3 内核支持 256 个中断,其中包含了16 个内核中断和 240 个外部中断,并且具有 256级的可编程中断设置。但 STM32 并没有使用 CM3内核的全部东西,而是只用了它的一部分。STM32有 84 个中断,包括 16 个内核中断和 68 个可屏蔽中断,具有 16 级可编程的中断优先级。而我们常用的就是这68 个可屏蔽中断,但是 STM32 的 68 个可屏转载 2015-08-08 19:16:03 · 481 阅读 · 0 评论 -
STM32 通用定时器
STM32 的定时器功能十分强大,有 TIME1 和 TIME8 等高级定时器,也有 TIME2~TIME5 等通用定时器,还有 TIME6 和TIME7 等基本定时器。STM32 的通用定时器是一个通过可编程预分频器(PSC)驱动的16 位自动装载计数器(CNT)构成。STM32的通用定时器可以被用于:测量输入信号的脉冲长度(输入捕获)或者产生输出波形(输出比较和PWM)转载 2015-08-08 19:23:27 · 1104 阅读 · 0 评论 -
STM32 系统架构
这里所讲的 STM32 系统架构主要针对的STM32F103 这些非互联型芯片STM32 主系统主要由四个驱动单元和四个被动单元构成。四个驱动单元是:内核 DCode 总线; 系统总线;通用 DMA1;通用DMA2;四被动单元是:AHB 到 APB的桥:连接所有的 APB 设备;内部 FlASH 闪存;内部 SRAM;FSMC;下面我们具体看一下图中转载 2015-08-08 19:17:48 · 1618 阅读 · 0 评论 -
RTC 实时时钟
STM32 RTC 时钟简介STM32 的实时时钟(RTC)是一个独立的定时器。STM32的 RTC 模块拥有一组连续计数的计数器,在相应软件配置下,可提供时钟日历的功能。修改计数器的值可以重新设置系统当前的时间和日期。RTC 模块和时钟配置系统(RCC_BDCR寄存器)是在后备区域,即在系统复位或从待机模式唤醒后 RTC的设置和时间维持不变。但是在系统复位后,会自动禁止访问后转载 2015-08-08 19:27:52 · 1624 阅读 · 0 评论 -
工业控制PID
1. 数字(离散)PID控制算法的表达式:将PID调节器离散化,用差分方程来代替连续系统的微分方程,分为位置式和增量式两类。重点理解概念如下:a) 基本偏差e(t):表示当前测量值与设定目标值间的差,设定目标是被减数,结果可为正或负值,正值表示未达到目标,负值表示超过设定值。(代表比例)b) 偏差和:即每次测量的差值总和,注意正负(代表积分)c) 基本偏差的相对转载 2017-12-25 15:47:07 · 1455 阅读 · 0 评论