学习使用单片机就是理解单片机硬件结构,以及内部资源的应用,在汇编或C语言中学会各种功能的初始化设置,以及实现各种功能的程序编制。
<strong> 第一步:数字I/O的使用 </strong>
使用按钮输入信号,发光二极管显示输出电平,就可以学习引脚的数字I/O功能,在按下某个按钮后,某发光二极管发亮,这就是数字电路中组合逻辑的功能,虽然很简单,但是可以学习一般的单片机编程思想,例如,必须设置很多寄存器对引脚进行初始化处理,才能使引脚具备有数字输入和输出输出功能。每使用单片机的一个功能,就要对控制该功能的寄存器进行设置,这就是单片机编程的特点,千万不要怕麻烦,所有的单片机都是这样。
<strong> 第二步:定时器的使用</strong>
作者:suipingsp
硬件和软件是一颗芯片系统互相依存的两大部分,本文总结了一颗芯片的软硬件组成,作为对芯片的入门级概括吧。
<strong>(一)硬件</strong>
主控CPU:运算和控制核心。基带芯片基本构架采用微处理器+数字信号处理器(DSP)的结构,微处理器是整颗芯片的控制中心,会运行一个实时嵌入式操作系统(如Nucleus PLUS),DSP子系统负责基带处理。应用处理器则可能包括多颗微处理器,还有GPU。微处理器是ARM的不同系列的产品(也可以是x86架构),可以是64位或者32位。处理器内部通过“内部总线”将CPU所有单元相连,其位宽可以是8-64位。
Proteus软件是英国Lab Center Electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前比较好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。
这一套Proteus教学视频是由up主wangxinmingqq花时间录制的,内容很全,既适合初学者,又适合对proteus有一定基础的人。
学过单片机的同学,对PWM应该不陌生,一般学习单片机的第二个例程就是用PWM技术调节占空比来控制LED亮度。然而PWM控制技术在逆变电路中应用最广,正是有赖于其在逆变电路中的应用,才确定了它在电力电子技术中的重要地位。因此,本文将详细阐述pwm的原理:PWM(PulseWidthModulation)控制——脉冲宽度调制技术,通过对一系列脉冲的宽度进行调制,来等效地获得所需要波形(含形状和幅值)。
PWM控制技术在逆变电路中应用最广,应用的逆变电路绝大部分是PWM型,PWM控制技术正是有赖于在逆变电路中的应用,才确定了它在电力电子技术中的重要地位。
<strong> 1、PWM控制的基本原理</strong>
理论基础:
便携式系统通常用电池供电,而电池使用寿命取决于系统的功耗。在提倡“绿色环保”计划的今天,即便是市电供电的应用也要把功耗作为一项重要的产品选择标准。
便携式设备通常分为使用充电电池供电的设备和使用非充电电池供电的设备。如果应用使用的是非充电电池,那么电池使用寿命将是至关重要的规范要求。对于任何应用而言,电池使用寿命取决于:
所用电池的可用电荷量;
应用的平均电流消耗。
使用充电电池的应用还要考虑到另一个参数,那就是电池充电的频率和每次充电所花的时间。从最简单的角度说,延长电池使用寿命可通过提高电池容量或降低应用的平均电流消耗来实现。由于电池重量过大会影响系统的机械约束和成本,因此系统设计人员只能将电池电量提高到一个限值。在电池化学技术的全新发展不断提高电池电荷密度的同时,我们还亟需想办法继续降低平均功耗。
微控制器(MCU)深入人们应用生活,几乎大小设备都看得到MCU踪影,在MCU导入DSP数字信号处理器、FPU浮点运算单元功能后,MCU更大幅扩展元件可适用范围,这几年来,在众多MCU大厂纷纷针对旗下商品推出多样整合方案,不管是产品策略还是市场区隔,也让MCU市场更加丰富多元...
MCU(Microcontroller Unit)深入生活应用是不容易质疑的趋势,尤其是MCU在功能优化或市场区隔目的下,进行DSP(Digital Signal Processor)数字信号处理器或FPU(Floating Point Unit)浮点运算单元功能整合,使得MCU的可应用场域大幅扩展。
MCU整合FPU可以在进阶数值运算的精密度大幅提升、处理效能也能获得改善。
影响单片机系统可靠安全运行的主要因素主要来自系统内部和外部的各种电气干扰,并受系统结构设计、元器件选择、安装、制造工艺影响。这些都构成单片机系统的干扰因素,常会导致单片机系统运行失常,轻则影响产品质量和产量,重则会导致事故,造成重大经济损失。
<strong>形成干扰的基本要素有三个:</strong>
<strong>(1)干扰源。</strong>指产生干扰的元件、设备或信号, 用数学语言描述如下:du/dt, di/dt大的地方就是干扰源。如:雷电、继电器、可控硅、电机、高频时钟等都可能成为干扰源。
<strong>(2)传播路径。</strong>指干扰从干扰源传播到敏感器件的通路或媒介。典型的干扰传播路径是通过导线的传导和空间的辐射。
<strong>1、 MDK5.18 安装</strong>
打开从Keil官方网站下载的MDK5,双击mdk518.exe,进行安装。这里我们将 其安装到D 盘,MDK5.18
文件夹下,需要设置安装路径,如图1.1 所示:
<center><img src="http://mm32.eetrend.com/files/2016-09/wen_zhang_/100002899-9471-1.png&q…; alt=""></center>
Proteus软件是英国Lab Center Electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前比较好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。
这一套Proteus教学视频是由up主wangxinmingqq花时间录制的,内容很全,既适合初学者,又适合对proteus有一定基础的人。
微控制器(MCU)深入人们应用生活,几乎大小设备都看得到MCU踪影,在MCU导入DSP数位讯号处理器、FPU浮点运算单元功能后,MCU更大幅扩展元件可适用范围,这几年来,在众多MCU大厂纷纷针对旗下商品推出多样整合方案,不管是产品策略还是市场区隔,也让MCU市场更加丰富多元。
在单片机开发中,由于资源受限而没有平台的支持,每次开发都要重写很多代码,应用的千奇百怪的需求更是加剧了这种困难。解决问题的办法是,总结常见的需求,分析它,得出即高效有通用的解决方案。
今天我就来为大家提供一种按键的解决方案,它易用,高效,节省资源!
先给出这个按键模块解决方案的全部代码,稍后再来分析。
<strong> keyif.h内容:</strong>
1. 实验设备:
MM32f103 测试板,stm32 测试板, Jlink、ulink2 以及 keil 5.15、keil5.18 版本
2. 实验现象:
复制一个 MM32f103 的软件工程文件到任意别的目录下,然后修改工程文件名,打开后,直接编译,然后下载,会发现下载报错,出现如下图所示。(stm32 同样会出错)
对于一个新设计的电路板,调试起来往往会遇到一些困难,特别是当板比较大、元件比较多时,往往无从下手。但如果掌握好一套合理的调试方法,调试起来将会事半功倍。对于刚拿回来的新PCB板,我们首先要大概观察一下,板上是否存在问题,例如是否有明显的裂痕,有无短路、开路等现象。如果有必要的话,可以检查一下电源跟地线之间的电阻是否足够大。
Cortex-M4微控制器(MCU)将可加速马达控制设计。精准的马达控制须仰赖精密且复杂的算法才能达到,而Cortex-M4微控制器运算能力达100MHz,并具备DSP及硬件浮点运算单元,可有效执行马达控制所需的高阶计算,有助减轻开发负担。
透过内建Cortex-M4核心的微控制器(MCU),再搭配智能型连接的接口设备,将可轻松执行复杂的马达控制算法。本文将以永磁同步马达(PMSM)磁场定向控制(FOC)之中的方程式为例进行探讨,并显示如何利用CMSIS数字信号处理器(DSP)链接库进行处理。本范例使用的相同原则,可应用至其他控制算法及马达类型。此外,也将探讨智能型接口设备为何不需要第二个核心,并说明使用单一业界标准核心搭配CMSIS DSP链接库的众多优点。
作者:阮一峰
源码要运行,必须先转成二进制的机器码。这是编译器的任务。
比如,下面这段源码(假定文件名叫做test.c)。
#include <stdio.h>int main(void){
fputs("Hello, world!\n", stdout);
return 0;}
要先用编译器处理一下,才能运行。
$ gcc test.c
$ ./a.out
Hello, world!
对于复杂的项目,编译过程还必须分成三步。
$ ./configure
$ make
$ make install
<strong>一:C语言程序的存储区域</strong>
由C语言代码(文本文件)形成可执行程序(二进制文件),需要经过编译-汇编-连接三个阶段。编译过程把C语言文本文件生成汇编程序,汇编过程把汇编程序形成二进制机器代码,连接过程则将各个源文件生成的二进制机器代码文件组合成一个文件。
C语言编写的程序经过编译-连接后,将形成一个统一文件,它由几个部分组成。在程序运行时又会产生其他几个部分,各个部分代表了不同的存储区域:
1、代码段(Code或Text)
代码段由程序中执行的机器代码组成。在C语言中,程序语句进行编译后,形成机器代码。在执行程序的过程中,CPU的程序计数器指向代码段的每一条机器代码,并由处理器依次运行。
2、只读数据段(RO data)
作者:linuxer
<strong>一、前言</strong>
本文主要描述了ARM64启动过程中,如何建立初始化阶段页表的过程。我们知道,从bootloader到kernel的时候,MMU是off的(顺带的负作用是无法打开data cache),为了提高性能,加快初始化速度,我们必须某个阶段(越早越好)打开MMU和cache,而在此之前,我们必须要设定好页表。
作者:贝恩咨询
转载自:半导体行业观察(icbank)
半导体这种对技术、人才和经验有极高需求的产业,要发展起来也不可能是一朝一夕的,我们要看清楚前景是光明的,道路是曲折的,希望中国半导体人能够共勉。
在中国近年来在半导体领域的重大投入和中国庞大市场的双重影响下,中国半导体在全球扮演的的角色日益重要。国际社会上很多观察家在把中国看成一个机会的同时,也同时顾虑到中国半导体崛起带来的威胁。但有一点可以肯定的是,近年来中国半导体玩家频频露面知名国际会议,已经制造了相当程度的全球影响力。
自从中国宣布建立千亿的投资基金,挑战全球半导体霸主的地位。业界的巨头们都在思考并谨慎防御中国的半导体野心。
这两天,平衡车行业被一股浓浓的寒意笼罩。近日,上海、北京警方先后对平衡车等进行了集中整治,多款电动滑板车、平衡车被禁止上路。事实上,自美国对平衡车行业启动“337调查”后,中国的平衡车行业就处在一片“愁云惨雾”之中。
<strong> 1、快速排序算法</strong>
快速排序是由东尼•霍尔所发展的一种排序算法。在平均状况下,排序n个项目要Ο(nlogn)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(nlogn)算法更快,因为它的内部循环(innerloop)可以在大部分的架构上很有效率地被实现出来。
快速排序使用分治法(Divideandconquer)策略来把一个串行(list)分为两个子串行(sub-lists)。
算法步骤:
(1)从数列中挑出一个元素,称为“基准”(pivot),





