
ARM芯片
怀想天空2011
这个作者很懒,什么都没留下…
展开
-
IIC总线工作原理
图11-1给出一个由MCU作为主机,通过IIC总线带3个从机的单主机IIC总线系统。这是最常用、最典型的IIC总线连接方式。物理结构上,IIC系统由一条串行数据线SDA和一条串行时钟线SCL组成。主机按一定的通信协议向从机寻址和进行信息 传输。在数据传输时,由主机初始化一次数据传输,主机使数据在SDA线上传输的同时还通过SCL线传输时钟。信息传输的对象和方向以及信息传输的开始和终原创 2017-04-26 14:56:13 · 19069 阅读 · 2 评论 -
DDR和DDR2,DDR3,区别在那里
严格的说DDR应该叫DDR SDRAM,人们习惯称为DDR,部分初学者也常看到DDR SDRAM,就认为是SDRAM。DDR SDRAM是Double Data Rate SDRAM的缩写,是双倍速率同步动态随机存储器的意思。DDR内存是在SDRAM内存基础上发展而来的,仍然沿用SDRAM生产体系,因此对于内存厂商而言,只需对制造普通SDRAM的设备稍加改进,即可实现DDR内存的生产,可有效的降低原创 2015-12-07 17:47:19 · 715 阅读 · 0 评论 -
基于锁相环的频率合成电路设计
0 引言 锁相环简称PLL,是实现相位自动控制的一门技术,早期是为了解决接收机的同步接收问题而开发的,后来应用在电视机的扫描电路中。由于锁相技术的发展,该技术已逐渐应用到通信、导航、雷达、计算机到家用电器的各个领域。自从20世纪70年代起,随着集成电路的发展,开始出现集成的锁相环器件、通用和专用集成单片锁相环,使锁相环逐渐变成一个低成本、使用简便的多功能器件。如今,PLL技术主要应用在调原创 2015-12-08 16:42:17 · 8132 阅读 · 3 评论 -
SRAM与SDRAM的比较与区别
内存在电脑中起着举足轻重的作用,一般采用半导体存储单元,包括随机存储器(RAM),只读存储器(ROM),以及高速缓存(CACHE)。按内存条的接口形式,常见内存条有两种:单列直插内存条(SIMM),和双列直插内存条(DIMM)。SIMM内存条分为30线,72线两种。DIMM内存条与SIMM内存条相比引脚增加到168线。DIMM可单条使用,不同容量可混合使用,SIMM必须成对使用。原创 2015-12-07 17:33:51 · 2585 阅读 · 0 评论 -
关于NVIC_IRQChannelPreemptionPriority
STM32有43个channel的settable的中断源:AIRC(Application Interrupt and Reset Register)寄存器中有用于指定优先级的4位。这4个bits用于分配pre-emption优先级和sub优先级。前者为抢占优先级 后者为响应优先级,也称为副优先级。 具有高抢占式优先级的中断可以在具有低抢占式优先级的中断处理过程中被响应,原创 2016-01-18 22:15:26 · 24383 阅读 · 2 评论 -
STM8硬件线路设计基础
其实STM8可以不需要晶振跟复位电路,但是为了最小系统能够稳定运行,所以最好增加外部电路。 ● STM8复位电路设计 STM8单片机内置上电复位(POR),所以,STM8单片机可以不设外部上电复位电路,依然可以正常复位,稳定工作。 若是系统需要设置按键复位电路,那么注意,STM8单片机是低电平复位,如下图,设计按键复位电路: ● STM8震荡电路设计 STM原创 2015-11-30 11:37:50 · 2326 阅读 · 0 评论 -
12864点阵液晶显示器指令
基本指令1、清除显示(DispClear 0x01)CODE: RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0LLLLLLLL原创 2015-11-30 11:42:13 · 6232 阅读 · 0 评论 -
STM32寄存器列表 RCC时钟相关寄存器
RCC_CR(时钟控制寄存器)25位:PLLRDY-PLL时钟就绪标志(PLL锁定后由硬件置1)定义:0(未锁定),1(锁定)24位:PLLON-PLL使能(手动)定义:0(PLL关闭),1(PLL使能)。进入待机或停机模式时,该位由硬件清零当PLL用作系统始终时,该位不能被清零。19位:CSSON时钟安全系统使能(由软件置1或清零)定义:0(时钟监测器关闭),1(如果外部原创 2015-11-30 11:34:54 · 3364 阅读 · 0 评论 -
什么是ROM、RAM、DRAM、SRAM和FLASH的区别
ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写。ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是在掉电之后就丢失数据,典型的RAM就是计算机的内存。RAM有两大类,一种称为静态RAM(Static RAM/SRAM),SRAM速度非常快,是目前读写最快的存储设备了,但是它也非常昂贵,所以原创 2015-12-07 17:57:04 · 510 阅读 · 0 评论 -
UART0串口编程系列 UART0串口编程之在UC/OS—II中遭遇的危机
一.潜在的危机1.在uc/os操作系统中设计串口编程时,由于ISR和多个任务并发执行,情况比较复杂。尤其是接收状态为被动状态时,只能靠串行口中断来接收数据。2.在进行串行通信时,双方遵循相同的通信协议。由于波特率不变,因此相邻两次串口中断的间隔时间基本固定。3.在以下两种情况时会使接收过程出现错误:? 第一种情况是系统关中断的最长时间大于相邻两次串行接收中断的间隔原创 2015-12-09 17:13:36 · 526 阅读 · 0 评论 -
SPI协议及其工作原理浅析
说明.文章摘自:SPI协议及其工作原理浅析 http://bbs.chinaunix.NET/thread-1916003-1-1.html一、概述. SPI, Serial Perripheral Interface, 串行外围设备接口, 是 Motorola 公司推出的一种同步串行接口技术. SPI 总线在物理上是通过接在外围设备微控制器(PICmicro) 上面的微处转载 2017-04-26 14:57:49 · 439 阅读 · 0 评论 -
CMOS与CCD的灵感度比较
摘要:CMOS 色彩还原好,CCD夜视好;数字高清CMOS白天更漂亮,模拟CCD夜视更漂亮。不论CMOS还是CCD/ MCCD,像素点越多,白天画面越漂亮,Pixcel Size越大,感光灵敏度越高,夜视效果更漂亮。CMOS和CCD是两种不同的光电转换技术,两者也经历了不同的技术发展阶段。当前CMOS图像传感器科技发展迅猛,整个安防领域从Sensor端开始竞争白热化,在Ipcam、模拟转载 2017-03-03 10:34:30 · 1741 阅读 · 0 评论 -
细数ARM与Intel在半导体行业这些年的那些事
[导读] 在过去PC、服务器芯片与手机芯片是两个完全不同的领域,ARM与Intel双方井水不犯河水,PC和服务器芯片是X86架构,而移动市场主要是由ARM架构所主导。在过去PC、服务器芯片与手机芯片是两个完全不同的领域,ARM与Intel双方井水不犯河水,PC和服务器芯片是X86架构,而移动市场主要是由ARM架构所主导,不过近年来X86架构芯片的性能发展潜力接近极限发展速度变慢,ARM原创 2016-03-02 10:30:42 · 860 阅读 · 0 评论 -
主流芯片架构向三大方向发展
指令集可分为复杂指令集(CISC)和精简指令集(RISC)两部分,代表架构分别是x86、ARM和MIPS。ARMRISC是为了提高处理器运行速度而设计的芯片体系,它的关键技术在于流水线操作即在一个时钟周期里完成多条指令。相较复杂指令集CISC而言,以RISC为架构体系的ARM指令集的指令格式统一、种类少、寻址方式少,简单的指令意味着相应硬件线路可以尽量做到最佳化,从而提高执行速率。因为指令原创 2015-12-16 09:50:08 · 1424 阅读 · 0 评论 -
MIPS和ARM的比较
MIPS(Million Instructions Per Second):单字长定点指令平均执行速度 Million Instructions Per Second的缩写,每秒处理的百万级的机器语言指令数。这是衡量CPU速度的一个指标。像是一个Intel 80386 电脑可以每秒处理3百万到5百万机器语言指令,即我们可以说80386是3到5MIPS的CPU。MIPS只是衡量CPU性能的指标。原创 2015-12-16 09:53:49 · 5849 阅读 · 0 评论 -
MIPS与ARM的区别
主要是网上的,描述若有偏差,还请大家见谅 :)特别提示:关于多线程,现在MIPS32 34KC已经实现了MT,而且Kernel从2.6.17开始已经有了对其的支持。我会在以后的文章中详细介绍。//////////////////////////////////////1.流水线结构 pipeline - MIPS 是最简单的体系结构之一,所以使大学喜欢选择 M原创 2015-12-16 09:55:11 · 6024 阅读 · 0 评论 -
嵌入式Linux操作系统简介
嵌入式Linux操作系统介绍 嵌入式Linux操作系统,是个与生俱来的网络操作系统且成熟稳定。其为开源软件且源代码开放,不存在黑箱技术,按照GPL公约任何人都可以对它进行修改添加新的功能形成自己的产品。可以对系统进行内核定制做到最小,一个带有中文系统及图形化界面的核心程序可以做到不到1MB的大小,而且同样稳定实是可靠。嵌入式Linux操作系统作为一种开源且可裁减的软件平台系统,是嵌入式产品开发原创 2015-12-27 21:04:09 · 4480 阅读 · 0 评论 -
UART0串口编程系列 串口(UART0)之UC/OS(二)
一.串口接收数据在UC/OS设计中应注意的问题1. 串口通信的数据接收过程:1> UART 接收FIFO接收到预定字节后触发中断2> ISR读取接收到的内容并保存3> 经过一次或若干次ISR完成一个通信帧的接收(拼装通信帧)4> 处理和解释通信内容5> 根据处理结果触发其他任务2. 串口数据接收程序设计时,应该考虑的问题原创 2015-12-09 17:15:28 · 742 阅读 · 1 评论 -
浅谈STM32的DMA模块的使用
前言:接触MCU的编程已经有几年的历史,刚开始是从PLC(C语言的)学习与应用,后来有学习了8bits的AVR单片机,对MCU有一定的了解;最近接触了STM32的Chip,发现其优点不只是单单宣传的32bits的MCU的速度,而且在编程的风格上也有了较大的变化(与我原有的编程习惯);特别是有一个与CPU并行运行的模块:DMA,对它印象深刻。现在就和大家一起讨论学习这个Module,谈谈我在学习中一原创 2015-11-30 11:36:52 · 1068 阅读 · 0 评论 -
GPIO_Mode
一、GPIO配置(1)GPIO_Mode_AIN 模拟输入(2)GPIO_Mode_IN_FLOATING 浮空输入(3)GPIO_Mode_IPD 下拉输入(4)GPIO_Mode_IPU 上拉输入(5)GPIO_Mode_Out_OD 开漏输出(6)GPIO_Mode_Out_PP 推挽输出(7)GPIO_Mode_AF_OD 复原创 2015-11-30 11:33:57 · 439 阅读 · 1 评论 -
stm32库函数学习篇---NVIC与外部中断
stm32库函数学习篇---NVIC与外部中断实现功能:外部中断线0(PA0)与线15(PA15)分别连接到两个按钮,一个按钮用于产生上升沿,另一个用于产生下降沿,两个中断函数里均对PA8口连接的led灯取反,同时PD2连接的led灯随意延时取反指示程序运行。这次我用了官方提供的例程来构建自己的工程,这样可以省下不少时间,而且减少了出错率,调试起来容易多了。 首原创 2016-01-18 21:08:46 · 1436 阅读 · 0 评论 -
在STVD下配置使用CXSTM8的方式
STM8系列使用STVD和IAR的编程,很多网友在使用过程中出现过配置问题和使用问题。下面我说明一下在STVD下如何使用CXSTM8。必备软件:1、附件中是CXSTM8是破解版,来自网络。如有版权问题,请给我留言,第一时间删除。CXSTM8.part01.rarCXSTM8.part02.rarCXSTM8.part03.rarCXSTM8.part原创 2015-11-22 17:37:15 · 5510 阅读 · 0 评论 -
STM8 通用输入输出口(GPIO)
简介STM8的通用输入/输出口用于芯片和外部进行数据传输。一个IO端口可以包括多达8个引脚,每个引脚可以被独立编程作为数字输入或者数字输出口。另外部分口还可能会有如模拟输入,外部中断,片上外设的输入/输出等复用功能。但是在同一时刻仅有一个复用功能可以映射到引脚上。复用功能的映射是通过选项字节控制的。请参考数据手册关于选项字节的描述。每个端口都分配有一个输出数据寄存器原创 2015-11-07 11:02:11 · 1438 阅读 · 0 评论 -
Linux I2C设备驱动编写(三)-实例分析AM3359
TI-AM3359 I2C适配器实例分析I2C Spec简述特性:兼容飞利浦I2C 2.1版本规格支持标准模式(100K bits/s)和快速模式(400K bits/s)多路接收、发送模式支持7bit、10bit设备地址模式32字节FIFO缓冲区可编程时钟发生器双DMA通道,一条中断线三个I2C模块实例I2C0\I2C1\I2C2时钟信号能够达到最高48MHz,来自PRCM不转载 2015-12-11 16:49:34 · 747 阅读 · 0 评论 -
Linux I2C设备驱动编写(一)
在Linux驱动中I2C系统中主要包含以下几个成员:I2C adapter 即I2C适配器I2C driver 某个I2C设备的设备驱动,可以以driver理解。I2C client 某个I2C设备的设备声明,可以以device理解。I2C adapter是CPU集成或外接的I2C适配器,用来控制各种I2C从设备,其驱动需要完成对适配器的完整描述,最主要的工作是需要完成i2c转载 2015-12-11 16:47:54 · 385 阅读 · 0 评论 -
Linux I2C设备驱动编写(二)
在(一)中简述了Linux I2C子系统的三个主要成员i2c_adapter、i2c_driver、i2c_client。三者的关系也在上一节进行了描述。应该已经算是对Linux I2C子系统有了初步的了解。下面再对他们之间的关系进行代码层的深入分析,我认为对他们的关系了解的越好,越有助于I2C设备的驱动开发及调试。带着问题去分析可能会更有帮助吧,通过对(一)的了解后,可能会产生以下的转载 2015-12-11 16:48:59 · 546 阅读 · 0 评论 -
烂笔头—I2C中的从/子地址问题
使用I2C接口对E2PROM进行读写操作时,用到子地址这个概念。子地址是指E2PROM存储空间的地址。在对E2PROM操作过程中要非常注意地址问题。在主发送模式下,子地址是紧接从地址方向标志位后发送的。在主接收模式下:子地址同样是在从地址方向标志位后发送的。不同的是:在主接收模式下,将子地址以主发送模式发送之后,才通过重启总线的方式转换到主接收模式。也就是说子地址总是在主发送模式下发送的。原创 2015-12-11 16:26:02 · 3388 阅读 · 0 评论 -
UART0串口编程系列 串口(UART0)之UC/OS(一)
一.在UC/OS中设计串口程序所要考虑的问题1. 串口通信数据以帧为单位进行处理,如果需要接收大量数据,则帧缓冲区规模必然很大;如果需要发送大量数据,则可将原始数据快看作缓冲区,不需要另外再创建帧缓冲区。2. 帧缓冲区是全局数据结构,通常为共享资源,需要考虑互斥访问问题(如在任务中关中断)。但是此时系统的效率就会下降。我们可以通过合理设计通信任务,将对帧缓冲区进行读原创 2015-12-09 17:14:55 · 1668 阅读 · 1 评论 -
UART0串口编程系列 串口编程(UART0)之中断方式(二)
三. 中断方式的串口编程1.用中断方式编写串口程序由那几部分组成2.硬件上的支持1>UART0 发送FIFO缓冲区A. UART0含有1个16字节的发送FIFO缓冲区B. U0THR是UART0发送FIFO的最高字节C. UART的发送FIFO是一直使能的2>UART0接原创 2015-12-09 17:12:31 · 4821 阅读 · 1 评论 -
SPI总线之CPOL CPHA
【背景】最近在看关于Silicon Labs的C8051F347的某个驱动中,关于SPI部分初始化的代码,看到其对于SPI的设置为CPOL=1,CPHA=0,对于CPOL及CPHA的含义不了解,想要搞懂,这两个参数到底是什么意思,以及为何要这么设置。所以才去找了SPI的极性和相位的相关资料,整理如下。【SPI基础知识简介】设备与设备之间通过某种硬件接口通讯,目前存在原创 2015-12-11 17:50:36 · 521 阅读 · 0 评论 -
I2C总线原理及应用实例
I2C(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。I2C总线产生于在80年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信。例如管理员可对各个组件进行查询,以管理系统的配置或掌握组件的功能状态,如电源和系统风扇。可随时监控内存、硬盘、网络、系统温度等多个参数,增加了系统的安原创 2015-12-11 16:30:15 · 433 阅读 · 0 评论 -
connection error(usb://usb):gdi-err0r[40201]:cannot access configuration database
STVD安装后出现connection error(usb://usb):gdi-err0r[40201]:cannot access configuration database的问题解决办法:1.检查驱动安装是否正确。2.这是DAO文件没有正常安装的问题,在ST_TOOLSET文件夹底下的DAO文件夹里,比如C:\Program Files (x86)\STMicroelectro原创 2015-11-22 17:38:24 · 4516 阅读 · 0 评论 -
32位嵌入式微处理器(processor)一览
32位嵌入式微处理器(processor)一览由于嵌入式系统的专用型与定制性,与全球PC市场不同,没有一种微处理器或者微处理器公司可以主导嵌入式系统。本文分析了当前市场上主流的一些32位嵌入式微处理器的特点和应用场合,并对其未来发展做一些展望。这里只是按照体系结构分类,不涉及具体的处理器芯片。一. ARMARM处理器是由英国的ARM公司设计的32位RISC处理器。毫无疑问,原创 2016-01-18 20:18:55 · 3381 阅读 · 0 评论 -
STM8、32 库函数自动生成器
懒人福利,值得拥有。http://pan.baidu.com/disk/home#list/path=%2Fstm8原创 2016-01-18 10:56:08 · 2148 阅读 · 0 评论 -
STM8 通用输入输出口(GPIO)
简介STM8的通用输入/输出口用于芯片和外部进行数据传输。一个IO端口可以包括多达8个引脚,每个引脚可以被独立编程作为数字输入或者数字输出口。另外部分口还可能会有如模拟输入,外部中断,片上外设的输入/输出等复用功能。但是在同一时刻仅有一个复用功能可以映射到引脚上。复用功能的映射是通过选项字节控制的。请参考数据手册关于选项字节的描述。每个端口都分配有一个输出数据寄存器,一个输原创 2015-11-30 11:41:10 · 1913 阅读 · 0 评论 -
STM32 GPIO使用超强总结
STM32 GPIO使用操作步骤:1. 使能GPIO对应的外设时钟例如://使能GPIOA、GPIOB、GPIOC对应的外设时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC , ENABLE);2. 声明一个GPIO_In原创 2015-11-30 11:32:21 · 3310 阅读 · 1 评论 -
经典_STM32_ADC多通道采样的例子
STM32 ADC多通道转换描述:用ADC连续采集11路模拟信号,并由DMA传输到内存。ADC配置为扫描并且连续转换模式,ADC的时钟配置为12MHZ。在每次转换结束后,由DMA循环将转换的数据传输到内存中。ADC可以连续采集N次求平均值。最后通过串口传输出最后转换的结果。程序如下:#i nclude "stm32f10x.h" //这个头文件包括STM32F10x所有外围寄存器、位、原创 2015-11-30 11:35:58 · 4779 阅读 · 0 评论 -
GPIO库函数
函数名称 功能描述GPIO_DeInit 重新初始化外围设备GPIOx相关寄存器到它的默认复位值GPIO_AFIODeInit 初始化交错功能(remap, event control和 EXTI 配置) 寄存器GPIO_Init 根据GPIO_初始化结构指定的元素初始化外围设备GPIOxGPIO_StructInit 填充GPIO_初始化结构(GPIO_InitS原创 2015-11-30 11:33:05 · 3701 阅读 · 0 评论 -
startup_stm32f10x_xx.s 启动代码文件选择
整体感觉stm32给的库文件太琐碎了,正如它的芯片型号一样繁多,例如启动文件:网上查到的各个文件的解释是:startup_stm32f10x_cl.s 互联型的器件,STM32F105xx,STM32F107xxstartup_stm32f10x_hd.s 大容量的STM32F101xx,STM32F102xx,STM32F103xxstartup_stm32f10x_hd原创 2016-01-16 12:27:49 · 737 阅读 · 0 评论 -
STM32F10X _FAULT
1.ERROR # 35:"Please select first the target STM32F10x device used in your application (in stm32f10x.h file)" : 修改 配置框-->C/C++ -->Preprocessor Symbols-->Define-->USE_STDPERIPH_DRIVER,STM32F10X_HD原创 2016-01-15 11:43:41 · 1217 阅读 · 0 评论