摘要:串行外设接口(SPI)是微控制器和外围IC(如传感器、ADC、DAC、移位寄存器、SRAM等)之间使用较广泛的接口之一。本文先简要说明SPI接口,然后介绍ADI公司支持SPI的模拟开关与多路转换器,以及它们如何帮助减少系统电路板设计中的数字GPIO数量。 SPI是一种同步、全双工、主从式接口。来自主
阅读全文
摘要:1.串行通讯与并行通讯 按数据传送的方式,通讯可分为串行通讯与并行通讯,串行通讯是指设备之间通过少量数据信号线(一般是 8 根以下),地线以及控制信号线,按数据位形式一位一位地传输数据的通讯方式。而并行通讯一般是指使用 8、16、32 及 64 根或更多的数据线进行传输的通讯方式,它们的通讯传输对比
阅读全文
摘要:1.显示不可见字符 默认情况下,vim是不会显示space,tabs,newlines,trailing space,wrapped lines等不可见字符的。我们可以使用以下命令打开list选项,来显示非可见字符: :set list //显示不可见字符 通过以上命令的设置TAB键显示为^I,而行
阅读全文
摘要:在Linux的环境中,压缩文件案的扩展名大多是:*.tar, *.tar.gz, *.tgz, *.gz, *.Z, *.bz2,这是因为Linux支持的压缩挃令非常多,且不同的扩展名所用到的压缩指令不同,彼此之间无法相互压缩或解压了。 *.Z compress 程序压缩的档案; *.gz gzip
阅读全文
摘要:对于linux中存在的文件,可以使用下面的方法把空格和TAB互相替换: 将TAB替换为空格 :set expandtab //将tab扩展成空格 :%retab! //按照将tab扩展成空格的格式重新设置当前文件的tab 将空格替换为TAB :set noexpandtab //将tab不扩展成空格
阅读全文
摘要:据非官方统计,90%电子行业的公众号都介绍过3种串行通讯协议:UART、SPI和I2C。这3种串行协议也是电子开发行业最常用的协议。前面介绍了串口通讯协议及其FPGA实现,SPI协议。本篇文章介绍I2C通讯协议及其FPGA实测波形。 1.I2C是什么 在消费电子,工业电子等领域,会使用各种类型的芯片
阅读全文
摘要:1.SPI协议简介 板卡内不同芯片间通讯最常用的三种串行协议:UART、I2C、SPI,之前写过串口协议及其FPGA实现,今天我们来介绍SPI协议,SPI是Serial Perripheral Interface的简称,是由Motorola公司推出的一种高速、全双工的总线协议。 与IIC类似,SPI
阅读全文
摘要:1、SPI简介 SPI,是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。SPI
阅读全文
摘要:SPI是一个同步的数据总线,也就是说它是用单独的数据线和一个单独的时钟信号来保证发送端和接收端的完美同步。 时钟是一个振荡信号,它告诉接收端在确切的时机对数据线上的信号进行采样。 产生时钟的一侧称为主机,另一侧称为从机。总是只有一个主机(一般来说可以是微控制器/MCU),但是可以有多个从机(后面详细
阅读全文
摘要:1. 背景 在嵌入式领域,我们往往有的时候需要根据一个标记 flag或者变量(全局的)来进行不同策略的程序执行。 在非编译器优化的形式下debug模式下,不会出任何问题。 但是我们对外发布的时候,往往都是 release版本,也就是进行了编译器优化,这个时候程序可能就会不同。 2. 编译器优化 c语
阅读全文
摘要:内部寄存器:指的是CPU内核里的寄存器,如r0,r1等; 外设寄存器:一般是指一些某一特殊功能的物理地址,外设寄存器的物理地址都在0x4800_0000~0x5FFF_FFFF,比如STM32中,GPIO、I²C、SPI、CAN都叫做外设寄存器。嵌入式通过编程来控制外设寄存器从而控制芯片外部的外设。
阅读全文
摘要:volatile用于声明变量时的使用的限定符。它告诉编译器该变量值可能随时发生变化,且这种变化并不是代码引起的。给编译器这个暗示是很重要的。 volatile的声明: 1.声明一个变量为volatile,可以在数据类型之前或之后加上关键字volatile。下面的语句,把变量abc声明一个volati
阅读全文
摘要:同步通信和异步通信概述: 1、异步通信:是一种很常用的通信方式。异步通信在发送字符时,所发送的字符之间的时间间隔可以是任意的。当然,接收端必须时刻做好接收的准备。发送端可以在任意时刻开始发送字符,因此必须在每一个字符的开始和结束的地方加上标志,即加上开始位和停止位,以便使接收端能够正确地将每一个字符
阅读全文
摘要:在计算机网络中,定时的因素称为位同步。同步是要接收方按照发送方发送的每个位的起止时刻和速率来接收数据,否则会产生误差。通常可以采用同步或异步的传输方式对位进行同步处理。 同步: 指的是通信双方步调一致,一般需要通过时钟线连接双方的时钟。一方作为主机控制时钟(控制通信速度),另一方作为从机接收时钟;
阅读全文
摘要:电子设备通过发送数据位从而实现相互交谈。位是二进制的,只能是1或0。 通过电压的快速变化,位从一个设备传输到另一个设备。 **在以5V工作的系统中,“0”通过0V的短脉冲进行通信,而“1”通过5V的短脉冲进行通信。 ** 数据位可以通过并行或串行的形式进行传输。 在串行通信中,位通过单根线一一发送。
阅读全文
摘要:我们写下的一行行代码,计算机到底是如何在执行的呢?我们以x86架构的CPU为例,简单介绍以下CPU的执行过程。 1、高级语言 为了方便编程,目前人类已经发明了六百多种编程语言,使得我们可以用人类最容易理解的语法规则去告诉计算机完成我们想要的功能。例如我们常用的C、C++、python、perl、ru
阅读全文
摘要:单工:数据传输只支持数据在一个方向上传输; 半双工:允许数据在两个方向上传输,但某一时刻只允许数据在一个方向上传输,实际上是一种切换方向的单工通信,不需要独立的接收端和发送端,两者可合并为一个端口; 全双工:通信允许数据在两个方向上同时传输,它在能力上相当于两个单工通信方式的结合。全双工指可以同时(
阅读全文
摘要:当你将微控制器连接到传感器,显示器或其他模块时,你是否考虑过这两种设备如何相互通信?他们到底在说什么?他们如何理解对方? 电子设备之间的通信就像人类之间的通信。双方都需要说同样的语言。在电子产品中,这些语言称为通信协议。对我们来说幸运的是,在构建大多数DIY电子产品项目时,我们只需要知道几个通信协议
阅读全文
摘要:通用异步收发器(Universal Asynchronous Receiver/Transmitter),通常称作UART,是一种串行、异步、全双工的通信协议,在嵌入式领域应用的非常广泛。 UART作为异步串行通信协议的一种,工作原理是将传输数据的每个二进制位一位接一位地传输。在UART通信协议中信
阅读全文
摘要:还记得以前打印机、鼠标和调制解调器都会带有那些笨拙的连接器的粗电缆的时代吗?从字面上来解读,就是必须拧入您的计算机的那些?这些设备可能正在使用UART协议与您的计算机进行通信。尽管USB几乎完全取代了那些旧的电缆和连接器,但是UART绝不会是一个过时的东西。您会发现许多DIY电子项目中仍然使用UAR
阅读全文
摘要:c中支持变参宏和__VA_ARGS__ 本人之前写过一篇关于c语言中宏用法的文章,需要的可以查看此篇文章>https://www.cnblogs.com/fulai-hou/articles/15520121.html>,这一篇主要讲gcc中专门支持的关于宏的参数的语法。 使用保留名__VA_ARG
阅读全文
摘要:1.用作符号常量/明示常量时 #define预处理指令和其他预处理指令一样,以#号作为一行的开始。指令可以出现在源文件的任何地方,其定义从出现的地方到该文件的末尾有效。 预处理器指令从#开始,到后面的第一个换行符为止。宏的名字中不允许有空格,而且必须遵循c变量的命名规则:只能使用字母/数字/下划线,
阅读全文
摘要:1.module简介 module是一个专门管理环境变量的工具,全程是module environment,一般应用于软件或运行库等设备有多个版本,且需要分别配置这些环境变量。 2.module工具的官网 https://modules.readthedocs.io/en/latest/index.
阅读全文
摘要:双向通过开关主要有tran/rtran/tranif0/tranif1/rtranif0/rtranif1 当tranif0,tranif1, rtranif0, or rtranif1设备关闭时,它们应该阻塞信号。当打开时,它们应该通过信号。而tran and rtran 设备不能被关闭,它们一直
阅读全文