跳转到主要内容
MCU加油站
Toggle navigation
首页
技术
新闻
下载中心
互动专区
视频
评测
活动
博客
登录
注册
技术
单片机嵌入式编程的五个注意事项
在单片机编程的过程中,如果一名设计者能够同时掌握多门编程语言,那么这名设计者肯定是一位非常优秀的人才。但是想要同时精通汇编、C语言、C++这三门语言实在是太难了,很多初学者在其中一门的学习中就已经到处碰壁,苦不堪言。本文特意为大家整理了拥有嵌入式编程领域多年工作经验的工程师意见,汇总成了一篇能够对嵌入式编程经验有着指导意义的注意事项,感兴趣的朋友快来看一看吧。 在单片机嵌入式编程中,...
阅读详情
2018-03-22 |
单片机
,
嵌入式
SDRAM的一些基础知识
基础一: SDRAM (Synchronous Dynamic RandomAccess Memory),同步动态随机存储器。同步是指其时钟频率与CPU的前端总线的系统时间频率相同,并且他的内部命令的发送与数据的传输都是以这个时钟为基准的,动态是指存储阵列需要不断的刷新才能保证数据的不丢失。随机是指数据不是线性存储的,是可以自由指定地址进行数据读写。 位宽:是指内存一次数据传输的数据量就是位宽,...
阅读详情
2018-03-21 |
SDRAM
耦合与退耦,上拉与下拉
耦合与退耦 什么是耦合电容?什么是去耦电路? 耦合指信号由第一级向第二级传递的过程,一般不加注明时往往是指交流耦合。 退耦是指对电源采取进一步的滤波措施,去除两级间信号通过电源互相干扰的影响。耦合常数是指耦合电容值与第二级输入阻抗值乘积对应的时间常数。 退耦有三个目的: 1.将电源中的高频纹波去除,将多级放大器的高频信号通过电源相互串扰的通路切断。 2.大信号工作时,电路对电源需求加大,...
阅读详情
2018-03-21 |
耦合电路
,
电容退耦
,
上拉电阻
32位低功耗MCU的设计
作者: 新唐科技 1、前言 传统的低功耗MCU设计都是以8位MCU为主,因为8位内核逻辑门数相对较少,运行或泄露电流低,售价也相对低廉。但是,许多新兴的应用都需要比8位内核更大的处理效率。近年智能生活的抬头、物联网的建立,便携式消费性电子产品与无线功能需求越来越高、设计越来越复杂,要提高性能的同时又要兼顾低功耗,需要有一款高性能低功耗的主控MCU来作为平台。另一方面,工业上的智能化也在展开,...
阅读详情
2018-03-20 |
32位MCU
,
低功耗MCU
关于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
,
通信
‹‹
253 中的第 199
››