跳转到主要内容
MCU加油站
Toggle navigation
首页
技术
新闻
下载中心
互动专区
视频
评测
活动
博客
登录
注册
技术
关于STM32空闲中断
在使用串口接受字符串时,可以使用空闲中断(IDLEIE置1,即可使能空闲中断),这样在接收完一个字符串,进入空闲状态时(IDLE置1)便会激发一个空闲中断。在中断处理函数,我们可以解析这个字符串。 需要注意的是,IDLE标志位需要软件清零,否则由于会不断进入中断,而使正常程序无法运行。当再次收到数据时(即RXNE再次置1),等到空闲便会重新进入中断。 在STM32F4中,...
阅读详情
2018-03-20 |
STM32
,
中断
x86和arm架构原子操作的区别
x86和arm在原子操作上有些差别,下面一代码的形式来说明区别: 首先比较单核: 由于x86是CISC指令集,允许在一条指令里进行两次内存操作,所以对i++,i__这些操作在单核条件下是原子,当然必须得是显示使用addl r,%1这种,就可在一条指令里完成读,写操作。 而arm属于RISC指令集,在一次指令执行期间只能有一次内存操作,所以像i++,i--这些需要先读取内存值然后赋值的操作,...
阅读详情
2018-03-20 |
X86
,
ARM
MCU上的无锁原子读操作
原子读操作是在MCU并发编程中常用的操作,简单举个例子来阐述问题: 我们使用RTOS或裸机状态编程时,必然需要一个全局时钟基准,通常是在一个定时器中断中累加实现,简化代码如下: static unsigned long volatile __jiffies = 0; /* 全局时钟基准节拍累加器 */ ISR_TIMER() /*...
阅读详情
2018-03-19 |
无锁原子
,
MCU编程
IAR在STM32的配置方法
一、在IAR EWARM中建立工程的步骤: 1. 建立工程项目文件 新建一个文件夹来存放整个工程项目,在该项目文件夹下建立几个子文件夹存放不同类别的文件: i. 将官方模板中的stm32f10x_conf.h、stm32f10x_it.c、stm32f10x_it.h和空白main.c文件复制到该项目文件夹下; ii. Obj-存放工程文件,将官方模板中的cortexm3_macro.s、...
阅读详情
2018-03-19 |
IAR
,
STM32
Nandflash操作详解
1.nandflash就是嵌入式系统的硬盘 2.分类 (1)MLC:存储单元格存储两位,慢,偏移,寿命短,容量大 (2)SLC:存储一位。快,寿命长,容量小,昂贵 3.访问 (1)独立编址,有专用的控制器,控制器里有相应的寄存器,先送地址,然后命令,最后数据 (2)地址组成:行地址(页编号),列地址(在页中的偏移),一个nand可以有很多块,每一块可以很多页,每一页的两个部分可以不同规格 (3)...
阅读详情
2018-03-19 |
NandFlash
STM32的存储器映射详解
存储器映射是指把芯片中或芯片外的FLASH,RAM,外设,BOOT,BLOCK等进行统一编址。即用地址来表示对象。 这个地址绝大多数是由厂家规定好的,用户只能用而不能改。用户只能在挂外部RAM或FLASH的情况下可进行自定义。 Cortex-M3支持4GB的存储空间,它的存储系统采用统一编址的方式; 程序存储器、数据存储器、寄存器被组织在4GB的线性地址空间内,以小端格式(little-...
阅读详情
2018-03-16 |
STM32
,
存储器
,
映射
MM32 六步PWM输出
针对电动马达方案中需要使用到六步PWM输出功能,本篇文章将向大家介绍如何使用MM32L0系列MCU实现六步PWM输出功能。 MM32高级控制定时器TIM1有互补输出的功能,我们便可以利用定时器 TIM1 来产生 3 对 6 路的互补 PWM 输出。MM32高级控制定时器TIM1产生六步PWM输出,用于驱动三相电机,对应着直流无刷电机的六步换相。 六步 PWM 产生:当在一个通道上应用了互补输出时...
阅读详情
2018-03-15 |
MM32
,
灵动微电子
STM32串口配置步骤
串口设置的一般步骤可以总结为如下几个步骤: 1) 串口时钟使能, GPIO 时钟使能 2) 串口复位 3) GPIO 端口模式设置 4) 串口参数初始化 5) 开启中断并且初始化 NVIC(如果需要开启中断才需要这个步骤) 6) 使能串口 7) 编写中断处理函数 1.串口时钟使能。 串口是挂载在 APB2 下面的外设,所以使能函数为:RCC_APB2PeriphClockCmd(...
阅读详情
2018-03-14 |
STM32
,
串口
浅谈嵌入式MCU开发中的三个常见误区
作者:胡恩伟 嵌入式MCU与MPU的区分 嵌入式系统中的处理器按照是否集成片上Flash和RAM可以分为MCU(MicroControl Unit—微控制器)和MPU(MicroProcess Unit—微处理器)。典型的MCU如Freescale S08、S12和MPC56xx以及8051单片机等,而典型的MPU如基于ARMCortex A系列内核的i.MX系列处理器:
2018-03-14 |
嵌入式
,
MCU
图文并茂了解ARM体系结构与编程模型
ARM处理器简介及RISC特点 ARM处理器简介 ARM(Advanced RISC Machines)是一个32位RISC(精简指令集)处理器架构,ARM处理器则是ARM架构下的微处理器。ARM处理器广泛的使用在许多嵌入式系统。ARM处理器的特点有指令长度固定,执行效率高,低成本等。 RISC设计主要特点 1、指令集——RISC减少了指令集的种类,通常一个周期一条指令,...
阅读详情
2018-03-13 |
ARM
stm32之通信
一、通信概述 按照数据传送方式分: 串行通信(一条数据线、适合远距离传输、控制较复杂) 并行通信(多条数据线、成本高、抗干扰性差) 按照通信的数据同步方式分: 异步通信(以1个字符为1帧、发送与接收时钟不一致) 同步通信(位同步、时钟一致) 按照数据的传输方向分: 单工(只能往一个方向传播) 半双工(数据传输可以沿两个方向,但是需要分时) 全双工(...
阅读详情
2018-03-12 |
STM32
,
通信
嵌入式开发常见问题解决方法
一、问题复现 稳定复现问题才能正确的对问题进行定位、解决以及验证。一般来说,越容易复现的问题越容易解决。 1.1 模拟复现条件 有的问题存在于特定的条件下,只需要模拟出现问题的条件即可复现。对于依赖外部输入的条件,如果条件比较复杂难以模拟可以考虑程序里预设直接进入对应状态。 1.2 提高相关任务执行频率 例如某个任务长时间运行才出现异常则可以提高该任务的执行频率。 1.3 增大测试样本量...
阅读详情
2018-03-12 |
嵌入式开发
非对称双核MCU基础知识及核间通信
本文从对比两颗分立MCU与单芯片双核MCU开始(以LPC4350为例),展开介绍了非对称双核MCU的基础知识与重要特点。接下来,重点介绍了核间通信的概念与几种实现方式,尤其是基于消息池的控制/状态通信。然后,对内核互斥、初始化流程等一些重要的细节展开了论述。最后提出了双核任务分工的两种应用模型,并分别举例。 背景与基本概念 在开发MCU应用系统时,如果单颗MCU无法满足系统的要求,...
阅读详情
2018-03-12 |
MCU
,
通信
ARM中MMU地址转换理解
首先,我们要分清ARM CPU上的三个地址:虚拟地址(VA,Virtual Address)、变换后的虚拟地址(MVA,Modified Virtual Address)、物理地址(PA,Physical Address) 1.启动MMU后,CPU核对外发出虚拟地址VA,VA被转换为MVA供MMU使用,在这里MVA被转换为PA;最后通过PA读写实际设备 2.MMU的作用就是负责虚拟地址(...
阅读详情
2018-03-09 |
ARM
,
MMU
MCU中上拉和下拉的意义
在很多MCU中,都有上拉和下拉的概念,从8051到AVR再到ARM,都有! 上拉: 简单理解起来,上拉就是通过一个电阻接到高电平,在MCU中主要是为了提高芯片的驱动能力,如8051的P0口,在8051的PDF中,我们可以看到: (1)每个单个的引脚,输出低电平的时候,允许外部电路,向引脚灌入的最大电流为 10 mA (2)每个 8 位的接口(P1、P2 以及 P3),允许向引脚灌入的总电流最大为...
阅读详情
2018-03-09 |
MCU
,
上拉电阻
,
下拉电阻
‹‹
250 中的第 196
››