Embedded
fyws0123
这个作者很懒,什么都没留下…
展开
-
【总结】寄存器
1. 概要寄存器是什么?寄存器是硬件单元的配置、设置选项。在CPU用户手册中,有整个CPU的模块图(Block Diagram),以及在各个章节中,各个硬件单元的详细模块图。哪些模块被使用,以及以什么样的方式使用,如何配置参数,都需要配置相应的寄存器。下图为CPU模块图,以GPIO为例,CPU提供了14组GPIO,每组GPIO在特殊功能寄存器(SFR)中,都有一个对应的寄存器,P0~P14,在访问P原创 2016-07-02 08:32:09 · 755 阅读 · 0 评论 -
【总结】中断
Long long time ago... 中断出现以前,程序是顺序执行的,CPU按照预设的指令顺序(程序),顺序执行。不久,系统中除了CPU外,又增加了许多外部设备,像定时器啊,串口啊,这些外设IO的访问速度很慢,通常为毫秒级,而CPU指令执行速度是纳秒级,矛盾就这样产生了。。。例如,CPU操作串口,把RAM中的数据通过串口设备发送出去,CPU从RAM中取一帧数据,发送给串口,然后就原创 2016-06-26 19:43:19 · 722 阅读 · 1 评论 -
【记录】IIC
概要IIC(IIC,inter-Integrated circuit),两线式串行总线,用于MCU和外设间的通信。 IIC只需两根线:数据线SDA和时钟线SCL。以半双工方式实现MCU和外设之间数据传输,速度可达400kbps。多主机I2C总线结构注意SDA和SCL两根总线需要上拉,使总线处于空闲状态。IIC协议空闲状态协议规定,SDA和SCL同时为高电平时,总线处于空闲状态。上拉电阻保证电平处于原创 2016-07-17 12:57:31 · 7042 阅读 · 3 评论 -
【总结】485
背景串口是一种物理层接口标准。但并未定义接口插件电缆协议。所以使用的接口插件电缆符合串口标准就可以使用。典型的接口插件电缆有RS232,RS422,RS485,它们定义了电压,阻抗等电气特性,当不定义软件协议。通常MCU引脚出来的是串口信号,同样的串口信号经过232转换芯片,就可得到232信号;经过485转换芯片,就可得到485信号。RS232接口缺陷232接口信号电平较高(+/-12V),容易损原创 2016-07-17 17:13:48 · 1244 阅读 · 0 评论 -
【解决】UART问题
UART和USART区别UART(Universal asynchronous receiver transmitter):通用异步收发器 USART(Universal synchronous asynchronous receiver transmitter):通用同步异步发生器在USART模式下,需要SCLK引脚,用于发送器时钟的输出,以便按照SPI主模式进行同步发送(起始位和结束位上无时钟原创 2016-07-05 20:43:12 · 9252 阅读 · 0 评论 -
【记录】UART
处理器与外部设备通信的两种方式并行通信传输原理:数据各个位同时传输优点:速度快缺点:占用引脚资源多串行通信传输原理:数据按位顺序传输优点:占用引脚资源少缺点:速度相对较慢串行通信按传送方向,可分为单工数据传输只支持数据在一个方向上传输半双工允许数据在两个方向上传输,但是,在某一时刻,只允许数据在一个方向上传输,它实际上是一种切换方向的单工通信全双工允许数据同时在两个方向上传输,因原创 2016-07-04 23:15:13 · 668 阅读 · 0 评论 -
【记录】看门狗定时器基础
原文概要我们平时使用的电脑,由于某种原因导致动作异常(反复执行指定外的操作,或者没有任何反应),这种情况被认定为程序失控(out of control)或者程序中止了。对于用户而言,可以知道程序出现了异常,需要采取一定的措施。 对于嵌入式系统而言,用户可能连是否使用了微控制器都不知道。当发现系统异常时,很可能的操作就是拔电源重启系统,根本谈不上监视异常、明确的判断和处理措施。 另一方面,各种应用翻译 2016-07-04 21:37:26 · 847 阅读 · 0 评论 -
【总结】可重入函数
概要可重入函数,顾名思义,就是多次调用,执行的结果是一致的。在单任务或单线程且没有中断的系统中,程序是顺序执行的,就不存在可重入性的问题。 而在多任务或多线程的系统中,多任务可以同时调用同一函数,即正在执行的函数可能被打断, 如果能够保证打断后,继续执行的结果与未被打断执行的结果保持一致,函数即具有可重入性; 相反,函数不具有可重入性。可重入函数例子 void strcpy(char *原创 2016-07-03 20:07:23 · 4257 阅读 · 0 评论 -
【总结】上拉电阻下拉电阻
概要在电路中经常可以看到上拉电阻和下拉电阻。虽然结构很简单,但在嵌入式系统中起着很重要的作用。接线上拉电阻,电阻一端接VCC,另一端接逻辑电平引脚(如单片机引脚) 下图中的R13,R14即为上拉电阻。下拉电阻,电阻一端接GND,另一端接逻辑电平引脚(如单片机引脚) 下图中的R18即为下拉电阻。IE_DATA为芯片引脚。作用提高驱动能力单片机输出高电平,由于后续电路的影响,高电平达不到VCC值,原创 2016-07-03 19:20:40 · 653 阅读 · 0 评论 -
【整理】J-Link 固件恢复
JLINK使用过程中,会发生程序异常,典型的是USB无法识别。我手上的JLINK在使用第三天的时候就出现了这样的问题。我当时曾经重新安装过不同版本的JLINK驱动,可能就是这样造成的吧。原因可能是固件固件本身的Bug,也可能是JLINK驱动的问题。一旦你的JLINK无法工作了,可以对JLINK进行固件恢复的,即重新将固件程序烧写到JLINK的Flash中。JLINK就是一个小型的嵌入式系统,从结构上原创 2016-07-02 21:26:34 · 1609 阅读 · 0 评论 -
【总结】嵌入式上层和底层
上层在嵌入式系统中,上层关注于具体应用,需要更多的产品知识,技术方面更多的是在Task层次上实现对应的功能。如,我们要设计一款水质分析仪,那么,我们必须要学习水质分析仪相关的知识,需要测量哪些数据,需要设定哪些数据,数据如何采样,用户应用场景是什么等等。这些不同的功能,通常由task实现,如通信用的Modbus task,用于数据采集的AD task,用于计算相应物理量的测量task等等。这些,对产原创 2016-07-02 08:38:34 · 3674 阅读 · 0 评论 -
【总结】延时程序
1. 作用延时在嵌入式系统中,无处不在。延时的作用是等待固定的时间后,执行某个操作。如,控制LED闪烁,如果延时很小或者没有延时,人眼无法看到闪烁的效果。2. 原理CPU在延时处理中,执行指定的时间。在时间未到之前,不能返回或被打断。3. 实现方式实现方法有两种:硬件延时,软件延时。3.1. 软件延时许多情况下,系统的定时器资源有限,或者用作其他用途,这时可以选择使用软件延时的方法。软件延时原创 2016-06-28 23:28:05 · 6376 阅读 · 0 评论 -
【译】volatile C语言关键字,如何使用?
原文概要许多程序员无法正确的理解C语言关键字volatile。这并不奇怪,大多数C原因书籍不过一两句一带而过。本文将告诉你如何正确使用它。在C/C++嵌入式代码中,你是否经历过下面的情况:代码执行正常–直到你打开了编译器优化代码执行正常–直到打开了中断古怪的硬件驱动RTOS的任务独立运行正常–直到生成了其他任务如果你的回答是“yes”,很有可能你没有使用C怨言关键字volatile。你并不翻译 2016-07-05 20:37:06 · 931 阅读 · 0 评论