嵌入式知识
嵌入式相关开发
自先沉稳~
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
STM32启动文件详解
;先在RAM中分配系统使用的栈,RAM的起始地址为0x2000_0000;然后在RAM中分配变量使用的堆;然后在CODE区(flash)分配中断向量表,flash的起始地址为0x0800_0000,该中断向量表就从这个起始地址开始分配;分配完成后,再定义和实现相应的中断函数,;所有的中断函数全部带有[weak]特性,即弱定义,如果编译器发现在别处文件中定义了同名函数,在链接时用别处的地址进行链接。;中断函数仅仅实现了Reset_Handler,其他要么是死循环,要么仅仅定义了函数名称;STM32转载 2020-07-08 09:57:24 · 1782 阅读 · 0 评论 -
Makefile详解
概述——什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写makefile了,会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力。因为,makefile关系到了整个工程的编译规则。一转载 2020-08-20 15:17:59 · 532 阅读 · 0 评论 -
嵌入式代码中一些缩写名词的意义
1. RX==receive,接收,从开启到现在接收封包的情况,是下行流量。 TX==Transmit,发送,从开启到现在发送封包的情况,是上行流量。 2. Sof: Start of Frame Eof: End of Frame. SOF:通信帧的开始。 EOF:通信帧的结束。 3.NVIC称之为“内嵌向量中断控制器:Nested Vectored Interrupt Controller (NVIC)”。4.ALG即应用程序层网关(Application Layer原创 2020-07-16 14:30:29 · 893 阅读 · 0 评论 -
STM32的JTAG和SWD模式的区别
JTAG(Joint Test Action Group,联合测试行动小组)是一种国际标准测试协议(IEEE 1149.1兼容),主要用于芯片内部测试。现在多数的高级器件都支持JTAG协议,如ARM、DSP、FPGA器件等。标准的JTAG接口是4线:TMS、 TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。相关JTAG引脚的定义为:TMS:模式选择,TMS用来设置JTAG接口处于某种特定的测试模式;TCK:时钟输入;TDI:数据输入,数据通过TDI引脚输入JTAG接口;TDO:数转载 2020-07-10 09:47:43 · 1833 阅读 · 0 评论 -
UART协议介绍
UART简介通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART。UART通信在工作中相当常见,项目中需要生成uart信号,在博客中记录下。uart是异步通信,因为它只有一根线就可以数据的通信。不像SPI,I2C等同步传输信号。所以串口的传输速度和其它协议的速度相比是比较慢的。下面具体讲解一些uart协议以及是如何通信的。图-1图-2上图是uart协议传输一个”A”字符通过示波器的uart解码而得到的波形示意图。根据此图来转载 2020-07-08 15:15:04 · 337 阅读 · 0 评论 -
波特率、比特率 与数据传输速率的区别
1.比特率比特率(bit rate)又称传信率、信息传输速率(简称信息速率,information rate)。其定义是:通信线路(或系统)单位时间(每秒)内传输的信息量,即每秒能传输的二进制位数,通常用Rb表示,其单位是比特/秒(bit/s或b/s,英文缩略语为bps)。在二进制系统中,信息速率(比特率)与信号速率(波特率)相等,例如,当系统以每秒50个二进制符号传输时,信息速率为50bit/s,信号速率也为50Bd(波特)。在无调制的情况下,比特率等于波特率;采用调相技术时,比特率不等于波特率。通信转载 2020-07-08 14:55:33 · 5938 阅读 · 0 评论 -
Keil5环境安装及破解(附相关安装包)
原文链接:https://blog.youkuaiyun.com/weixin_42108484/article/details/80475394转载 2020-07-07 10:24:16 · 2392 阅读 · 0 评论 -
Ymodem协议详解
Xmodem、Ymodem和Zmodem协议是最常用的三种通信协议。Xmodem协议是最早的,传输128字节信息块。Ymodem是Xmodem的改进版协议,具有传输快速稳定的优点。它可以一次传输1024字节的信息块,同时还支持传输多个文件。平常所说的Ymodem协议是指的Ymodem-1K,除此还有Ymodem-g(没有CRC校验,不常用)。YModem-1K用1024字节信息块传输取代标准的128字节传输,数据的发送回使用CRC校验,保证数据传输的正确性。它每传输一个信息块数据时,就会等待接收端回转载 2020-07-08 15:58:36 · 1041 阅读 · 0 评论 -
SPI通讯协议介绍
来到SPI通讯协议了。废话两句,“SPI很重要”,这是我在学校时候听那些单片机开发工程师说的。出来实习,到后来工作,确实如此,SPI的使用很常见,那么自然重要咯。SPI(Serial peripheral interface)即串行外围设备接口,是由Motorola首先在其MC68HCxx系列单片机上定义的,基于高速全双工总线的通讯协议。(又是高速,而且全双工,确实强大)被广泛应用于ADC、LCD等设备与MCU之间。跟前面学习I2C、USART一样,学习一种协议,还是从两个层面分析:物理层和协议层。#转载 2020-07-08 15:34:25 · 619 阅读 · 0 评论 -
I2C通信简介
I2C总线是PHLIPS公司在20世纪80年代推出的一种串行总线。具有引脚少,硬件实现简单,可扩展性强的优点。I2C总线的另一优点是支持多主控,总线上任何能够进行发送/接收数据的设备都可以占领总线。当然,任意时间点上只能存在一个主控。I2C即是一种总线,也是一种通讯协议。在嵌入式开发中,通讯协议可分为两层:物理层和协议层。物理层是数据在物理媒介传输的保障;协议层主要是规定通讯逻辑,同一收发双方的数据打包、解包标准。打个比方,物理层相当于现实中的公路,而协议层则是交通规则,汽车可以在路上行驶,但是需要交通规转载 2020-07-08 14:42:35 · 945 阅读 · 0 评论 -
UAC设备采用Feedback方案实现时钟同步
前段时间在公司设备上实现了speaker端的feedback功能,这里来总结分享一下,具体代码我就不写了,也没多少。主要是思路分析,毕竟思路在手,天下我有。下面的内容只是一个概述,有兴趣的小伙伴可以留言一起讨论学习。1.方案需求设备端通过feedback反馈功能来实现和主机设备的音视频数据在固定的一段时间内需求达成一致,从而达到数据不会丢失或者无法获取到的效果。2.方案原理USB2.0标准协议在5.12.4 Isochronous Devices 章节对于Feedback有所讲解。Source原创 2020-09-11 15:55:56 · 2348 阅读 · 1 评论 -
I2C设备、读写地址的关系
结论:I2C设备的写地址 = I2C设备地址 << 1I2C设备的读地址 = (I2C设备地址 << 1) + 1例如:#define MAX_17040_BATTERY_I2C_ADDR (0x36)#define MAX_17040_BATTERY_WRITE_ADDR (MAX_17040_BATTERY_I2C_ADDR << 1)#define MAX_17040_BATTERY_READ_ADDR转载 2020-09-27 10:04:26 · 4002 阅读 · 0 评论 -
固件(Firmware)与驱动的区别
**驱动和固件(firmware)都是代码,前者为软件服务,后者为硬件服务。**在操作系统概念还不明确的时代,二者是没有明显区别的。但是随着计算机体系结构的发展,硬件的种类开始变多,操作系统的种类也变多了。这个时候,因为各种技术的、商业的原因,硬件厂商希望自己的硬件能被更多的软件厂商使用,所以就需要在硬件之上做一些封装,让自己的硬件操纵起来更容易,这个时候就要有firmware这种东西了,它简化了软件与硬件的交互。但是为什么不把fimware做的很完美,做的不需要驱动支持呢?因为有不同的操作系统。我不知道你原创 2020-08-27 10:42:04 · 2833 阅读 · 1 评论 -
单片机ISP、IAP和ICP几种烧录方式的区别
玩单片机的都应该听说过这几个词。一直搞不太清楚他们之间的区别。今天查了资料后总结整理如下。ISP:In System Programing,在系统编程IAP:In applicating Programing,在应用编程ICP:In Circuit Programing,在电路编程ISP是指可以在板级上进行编程,也就是不用拆芯片下来,写的是整个程序,一般是通过ISP接口线来写。IAP虽然同样也是在板级上进行编程,但是是自已对自已进行编程,在应用中进行编程,也即可以只是更改某一部分而不影响系统的其它转载 2020-08-27 09:53:44 · 1695 阅读 · 0 评论 -
MCU的IO口模拟PWM信号
单片机的GPIO口可以产生PWM信号,可以使用定时器来实现。使用定时器控制GPIO口的高电平和低电平的翻转时间即可实现输出方波的频率控制和占空比控制。PWM的两个指标: 占空比和频率,普通的IO只要能控制高低电平变化就可以模拟PWM信号了。什么叫占空比?高电平时间占整个周期时间的比例叫占空比,比如一个周期为100ms,高电平部分占了40ms,那么占空比就是40%。什么叫频率?每秒种的周期数叫做频率,假如每秒产生50个波形,那么频率就是50Hz。IO口输出PWM信号的思路所谓PWM信号是指脉冲宽原创 2020-08-26 10:39:36 · 7127 阅读 · 0 评论 -
什么是看门狗(watchdog)
看门狗,又叫 watchdog timer,是一个定时器电路, 一般有一个输入,叫喂狗,一个输出到MCU的RST端,MCU正常工作的时候,每隔一端时间输出一个信号到喂狗端,给 WDT 清零,如果超过规定的时间不喂狗,(一般在程序跑飞时),WDT 定时超过,就回给出一个复位信号到MCU,是MCU复位. 防止MCU死机. 看门狗的作用就是防止程序发生死循环,或者说程序跑飞。工作原理:在系统运行以后也就启动了看门狗的计数器,看门狗就开始自动计数,如果到了一定的时间还不去清看门狗,那么看门狗计数器就会溢出从而引起转载 2020-08-26 10:10:58 · 4386 阅读 · 0 评论 -
tty串口和普通串口(uart)的区别
我们可以将一个串口注册为普通的字符设备,然后read/write收发数据就可以。但是如果将一个串口按照tty规定的方式注册(注册方式参考内核相关驱动代码),他就有一个tty的框架了,在此基础上可以将这个tty串口关联为控制台或者其他的tty类型的设备。这就是所谓的line discipline,可以挂载ppp或者Bluetooth的line discipline。这样就能实现基于串口的蓝牙和网络(当然你串口的另一端需要是连接的对应设备)。...原创 2020-08-25 11:00:03 · 2311 阅读 · 1 评论 -
Keil、uVision、MDK、Keil C51之间的区别比较
我们要区别的概念:KEIL uVision,KEIL MDK,KEIL For ARM,RealView MDK,KEIL C51,KEIL C166,KEIL C251从接触MCS-51单片机开始,我们就知道有一个叫KEIL的软件。在开发单片机时,使用的是C语言或者汇编语言,我们知道,这两种语言都不能直接烧写到单片机里面,执不执行暂且不说,光是代码的体积,就足以撑破整个单片机。所以,我们需要一个软件,把C语言或者汇编语言编译生成单片机可执行的二进制代码,而且它的体积也非常的小,足够存放在单片机的存储器转载 2020-08-25 08:58:41 · 9775 阅读 · 0 评论 -
SPI,IIC, IIS, UART, JTAG介紹
SPISPI接口的全称是"Serial Peripheral Interface",意为串行外围接口,是Motorola首先在其MC68HCXX系列处理器上定义的。 SPI接口主要应用在EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。 SPI接口是以主从方式工作的,这种模式通常有一个主器件和一个或多个从器件,其接口包括以下四种信号: (1)MOSI – 主器件数据输出,从器件数据输入 (2)MISO – 主器件数据输入,从器件数据输出 (3)SCLK – 时钟信号,转载 2020-08-14 14:40:36 · 840 阅读 · 0 评论 -
DMA介紹
概念“Direct Memory Access(存储器直接访问)。这是指一种高速的数据传输操作,允许在外部设备和存储器之间直接读写数据。整个数据传输操作在一个称为"DMA控制器"的控制下进行的。CPU除了在数据传输开始和结束时做一点处理外(开始和结束时候要做中断处理),在传输过程中CPU可以进行其他的工作(前提是未设置停止CPU访问)。这样,在大部分时间里,CPU和输入输出都处于并行操作。因此,使整个计算机系统的效率大大提高”。DMA传送方式是让存储器与外设、或外设与外设之间直接交换数据,不需要经过CP转载 2020-07-31 14:13:29 · 2545 阅读 · 1 评论
分享