自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

转载 SPI总线的特点、工作方式及常见错误解答重点是SCK时钟频率时间

 4.1 SPR设定错误  在从器件时钟频率小于主器件时钟频率时,如果SCK的速率设得太快,将导致接收到的数据不正确(SPI接口本身难以判断收到的数据是否正确,要在软件中处理)。  整个系统的速度受三个因素影响:主器件时钟CLK主、从器件时钟CLK从和同步串行时钟SCK,其中SCK是对CLK主的分频,CLK从和CLK主是异步的。要使SCK无差错无遗漏地被从器件所检测到,从器件的时钟CLK从...

2019-08-31 13:52:43 10616 4

转载 AD7390的基本结构和工作原理DAC转化SPI

串行外设接口(Serial Peripheral InteRFace,SPI)是一种高速同步串行输入/输出端口,近年来广泛应用于移位寄存器、D/A转换器、A/D转换器、串行E2PROM、LED显示驱动器等外部设备的扩展。SPI接口可以共享,便于组成带多个SPI接口器件的系统。其传送速率可编程,连接线少,具有良好的扩展性。  1 SPI接口介绍  SPI是摩托罗拉公司推出的一种同步串行通信接...

2019-08-31 09:23:10 879

转载 ADI官方解释在SPI通信期间,数据的发送(串行移出到MOSI/SDO总线上)和接收(采样或读入总线(MISO/SDI)上的数据)

串行外设接口(SPI)是微控制器和外围IC(如传感器、ADC、DAC、移位寄存器、SRAM等)之间使用最广泛的接口之一。本文先简要说明SPI接口,然后介绍ADI公司支持SPI的模拟开关与多路转换器,以及它们如何帮助减少系统电路板设计中的数字GPIO数量。SPI是一种同步、全双工、主从式接口。来自主机或从机的数据在时钟上升沿或下降沿同步。主机和从机可以同时传输数据。SPI接口可以是3线式或4线式...

2019-08-31 09:06:24 14939 2

原创 SPI模式ADS8341的BUSY保持高电平直到MSB被建立,要消耗一个时钟周期

PIC单片机为美国微芯公司(Ml-CROChip)公司生产研发,品种极其丰富,各系列片内功能资源各不相同,可以满足用户不同层次的开发要求。它采用哈佛总线结构和精简指令集(RISC)技术,其寻址方式简单、运行速度快、功耗低、驱动能力强等。在MICROCHIP公司PIC系列产品里,有低档、中挡、高挡单片机,且大部分都带有USART、SPI、IIC等总线接口,有的甚至还带有USB和CAN模块。这些特点给...

2019-08-31 09:00:39 1857

转载 Microchip公司的25XX系列的串行E2PROM采用了SPI总线

http://bbs.mydigit.cn/read.php?tid=726343SPI总线  MOTOROLA公司的SPI总线的基本信号线为3根传输线,即SI、SO、SCK。传输的速率由时钟信号SCK决定,SI为数据输入、SO为数据输出。采用SPI总线的系统如图8-27所示,它包含了一个主片和多个从片,主片通过发出片选信号-CS来控制对哪个从片进行通信,当某个从片的-CS信号有效时,能通过...

2019-08-30 16:57:58 660

转载 [经验] PROTEUS仿真学习笔记05 (SPI 协议 外设)——2014_7_15

SPI 的概念*************** 对初学者来说,SPI 应该比 I2C 难一些,原因: 1、C51 用SPI 的资料不多,要到STM32等更高级MCU 资料才会多; 2、SPI 的资料比较生硬,不够形象; 3、极性和相位的组合。 目前,网上找到的,感觉最好的资料应该是, http://www.niwozh...

2019-08-30 14:40:47 2525 1

转载 深度解析IO模拟时序(SPI)的注意事项

原则:有硬件I2C、SPI时尽量用硬件操作,省去IO模拟繁琐的时序调试。但在内部资源不够时就要用IO模拟总线了。关于短延时:模拟时序时是否需要延时要看MCU与device的相对速度。比如I2C如果400K的速率和MCU动辄几十M的速率不再一个量级,肯定要通过延时调整时序;但对于SPI因为其速度很高,甚至有的比单片机的速度还高,这时就没必要延时了。关于IO模拟的收发函数是否要合并成一个:...

2019-08-22 20:19:49 1712

转载 几种常用的模拟SPI读写一体化模块(C51)

原文:http://www.dz863.com/Microprocessors/MCS-8051/SPI-C51.htm说明:SPI接口有一个特点,即在时钟SCK的上升沿打入数据MOSI,在下降沿读入数据MISO.片选信号CS有正负区别.在硬件上MOSI与MISO是可以短路变为SIO可读写IO的.故SPI可为(不包括CS)三线(SCK,MOSI,MISO)协议,两线(SCK,SI...

2019-08-22 20:02:21 1038

原创 SPI---重点3,W25Q64规格书中上升沿写,下降读时序和SPI一个时钟周期内采集和输出对应,模拟SPI时序时,一个时钟周期内的边沿时刻采集(锁存)功能被单片机的IO引脚内部的正常读写锁存代替

因为W25Q64规格书中上升沿写,下降沿读所以导致误解以为SPI也是这样。其实W25Q64规格书中上升沿写,下降沿读和SPI的模式0和模式3对应,这样写更有利于W25Q64描述。SPI一个时钟周期内采集和输出对应一个时钟周期内一个位的读和写。模拟SPI时序时,一个时钟周期内的边沿时刻采集(锁存)功能被单片机的IO引脚内部的正常读写锁存代替无论串行读还是写,时钟的一个边沿对应...

2019-08-22 14:07:57 1962

转载 SPI总线协议学习笔记重点是程序实例---重点二(印证同一周期两条跳变的含义一个采集,下一个是允许数据变化也叫输出,但不应该是对应数据收发读写,仅仅课理解位针对串行移位寄存中BIT某一位数的读写收发)

SPI总线协议学习笔记重点是程序实例---重点二(印证同一周期两条跳变的含义一个采集,下一个是允许数据变化也叫输出,但不应该是对应数据收发读写,仅仅课理解位针对串行中BIT某一位数的读写收发,不能理解为主从设备见的字节读写收发)最近正在学习SPI总线协议,看了很多网上的相关内容,觉得有必要整理一下,既可以巩固自己的学习内容,也可以和大家分享,方便以后的学习。先来对SPI有个大概的了解...

2019-08-21 15:29:46 338

原创 SPI自己理解和疑惑----重点一

1、外设的读写,每一次读的同时需要先写;每一次写操作,也会读到外设的返回的移位寄存器内的数据。不同的SPI设备的实现方式不尽相同,主要是数据改变和采集的时间不同,在时钟信号上沿或下沿采集有不同定义,具体请参考相关器件的文档但是像X5045等芯片规定好了,上升沿写下降沿读。1302读写公用一条读写线标准的SPI采集和输出不是同一个时钟沿,差半个周期。采集(上升沿)和输出(下降沿)...

2019-08-21 15:11:06 1516

转载 单片机软件模拟SPI接口—加深理解SPI总线协议

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/ce123/article/details/6905630单片机软件模拟SPI接口—加深理解SPI总线协议SPI(Serial Peripheral Interfacer 串行外设接口)是摩托罗拉公司推出的一种同步串...

2019-08-21 11:47:53 307

转载 转载单片机IO口模拟SPI四种模式的程序

转载自------>单片机IO口模拟SPI四种模式的程序#include "iom8535v.h"#define _CPOL 1#define _CPHA 0#define SCK_IO DDRA|=0X01#define MOSI_IO DDRA|=0X02#define MISO_IO DDRA&=0XFB#define SS...

2019-08-21 11:37:20 299

原创 SPI采样和输出指主从同时的采样和输出

SPI总线是Motorola公司推出的三线同步接口,同步串行3线方式进行通信:一条时钟线SCK,一条数据输入线MOSI,一条数据输出线MISO;用于 CPU与各种外围器件进行全双工、同步串行通讯。SPI主要特点有:可以同时发出和接收串行数据;可以当作主机或从机工作;提供频率可编程时钟;发送结束中断标志;写冲突保护;总线竞争保护等。SPI总线有四种工作方式(SP0, SP1, SP2, SP3)...

2019-08-19 14:19:21 8556 1

原创 extern "C"指令中的C,表示的一种编译和连接规约,而不是一种语言或者变量

引言在用C++的项目源码中,经常会不可避免的会看到下面的代码: 1 2 3 4 5 6 7 8 9 #ifdef __cplusplus extern"C"{ #endif /*...*/ #ifdef __cplusplus }...

2019-08-19 11:02:06 122

原创 石英晶体振荡器和陶瓷振荡器区别

石英晶体振荡器和陶瓷振荡器区别分享举报浏览 3240 次1个回答#热议#小时候的哪些食物让你至今念念不忘?一天边牧羊一推荐于2018-09-27石英晶体振荡器的核心元件是石英晶体谐振器。陶瓷振荡器的核心元件是陶瓷谐振器。石英晶体谐振器的频率稳定度高达百万分之几(ppm),做成振荡器其频率稳定度可达-6量级。如果是温补振荡器也可达-7量级。如果是恒温振荡器可做到-...

2019-08-17 13:44:13 1752

原创 picoPower 延长电池寿命技术

picoPower 延长电池寿命技术。Atmel 的picoPower技术能使“节能”的电耗降低到仅有650nA,即使是在32 kHz时钟和高级欠压探测(Brown-out-detection)的运行情况下也是如此。这是业界同类产品的最低工作电流。Atmel AVR 营销经理 Asmund Saetre 表示:“对于众多应用产品来说,长达几年的电池寿命将是一个必须的要求。人们并不真的喜欢更换他...

2019-08-17 09:35:47 306

原创 C++项目中的extern "C" {} C与c++跨平台互相调用

引言在用C++的项目源码中,经常会不可避免的会看到下面的代码:? 1 2 3 4 5 6 7 8 9 #ifdef __cplusplus extern "C" { #endif /*...*/ #ifdef __cplusplus ...

2019-08-16 14:09:00 175

原创 #ifdef __cplusplus extern "C" { #endif中的“{”范围到了stm32f10x.h文件的最后“}”

百度知道:一般用于将C++代码以标准C形式输出(即以C的形式被调用),这是因为C++虽然常被认为是C的超集,但是C++的编译器还是与C的编译器不同的。C中调用C++中的代码这样定义会是安全的。一般的考虑跨平台使用方法如下:#ifdefined(__cplusplus)||defined(c_plusplus) //跨平台定义方法extern "C"{#...

2019-08-16 13:32:10 237

原创 回去和换行的区别

'\r' 回车,回到当前行的行首,而不会换到下一行,如果接着输出的话,本行以前的内容会被逐一覆盖;'\n' 换行,换到当前位置的下一行,而不会回到行首...

2019-08-15 17:05:20 107

原创 在Altium Designer中查询语句(Query)Query helper Querybuilder

在Altium Designer中, 设计规则通常用来定义用户的设计需求。 这些规则涵盖了设计的方方面面, 从布线宽度, 对象的安全间距,内电层的连接风格, 过孔风格等等。 设计规则不仅能在PCB设计的过程中实时检测, 而且也能够在需要的时候进行统一的批量检测并生成错误报告。 Altium Designer的设计规则不是PCB对象的属性, 而是独立定义的。 每条规则需针对具体...

2019-08-13 15:42:55 4653

原创 过孔VIA和焊盘PAD通孔的区别

在PCB设计中,过孔VIA和焊盘PAD都可以实现相似的功能。它们都能插入元件管脚,特别是对于直插DIP)封装的的器件来说,几乎是一样的。但是!在PCB制造中,它们的处理方法是不一样的。1.VIA的孔在设计中表明多少,钻孔就是多少。然后还要经历沉铜等工艺步骤,最后的实际孔径大概会比设计孔径小0.1mm。比如设定过孔0.5mm,实际完成后的孔径只有0.4mm。2.PAD的...

2019-08-08 10:09:02 2795

原创 STM32 GPIO中GPIOMode_TypeDef枚举变量的解析

GPIOMode_TypeDef是一个枚举变量,它用于存储GPIO工作的模式,它的定义如下:typedefenum{GPIO_Mode_AIN=0x0,GPIO_Mode_IN_FLOATING=0x04,GPIO_Mode_IPD=0x28,GPIO_Mode_IPU=0x48,GPIO_Mode_Out_OD=0x14,GPIO_Mode_Out_PP=0x10,...

2019-08-02 17:59:39 4263

原创 #define IS_GPIO_PIN(PIN) ((((PIN) & (uint16_t)0x00) == 0x00) && ((PIN) !=(uint16_t)0x00))

1(PIN)&(uint16_t)0x00)==0x00PIN与0x00相与;无论PIN为何值其相与的结果都为0x00;也就是这个等式恒成立成立;2(PIN)!=(uint16_t)0x00)如果PIN=0x00;就不成立;其他的PIN值都成立;1&&2表示两者都成立为真否则为假;也就是PIN的值不能为0x00;#defineGPIO...

2019-08-02 14:35:47 2514 2

原创 字的理解不是规定的 依赖平台定义

内存单元的大小单位有4个:位(1bit)、字节(8bit) 半字(一般是16bit)字(一般是32bit)在所有的计算机、所有的机器中(不管是32位系统还是16位系统还是以后的64位系统),位永远都是1bit字节永远都是8bit出现过很多16位、32位、64位的系统,被混乱的定义过的。建议大家对字、半字、双字的概念不要详细区分,依赖于平台编程的时候基本上用不到这个概念,但是在文档中还...

2019-08-02 13:49:58 107

原创 STM32引脚和地址对应

片上外设区分为四条总线,根据外设速度的不同,不同总线挂载着不同的外设,APB1挂载低速外设,APB2和AHB挂载高速外设。相应总线的最低地址我们称为该总线的基地址,总线基地址也是挂载在该总线上的首个外设的地址。APB1总线的地址最低,因此片上外设就从这这个地址开始,也称外设基地址。总线基地址从存储器映射那张图的Block2可以看到,分为4大块,每块都有一个起始地址,这个起始地址就是...

2019-08-02 13:35:30 3341

原创 GPIO_Speed_50MHz的值是多少

在STM32底层库中,使用GPIO_Speed_50MHz等来表示输出口的最高频率。那么他的值是多少。查看了一下定义,是个枚举后来查了一下枚举才知道,当枚举中的某个元素备赋值后,从该元素往后是递增的。即1,2,3。当赋给指定的偏移地址后,对应着寄存器中的MODEy【】:(3)枚举成员默认值在枚举类型中声明的第一个枚举成员它的默值为零。以后的枚举成员值是将前一个枚举...

2019-08-01 16:11:30 5543

转载 STM32中的GPIO_Init()函数的分析

STM32中的GPIO_Init()函数的分析学习STM32时,首先要熟悉流水灯例程,在这里就来分析流水灯中的GPIO_Init()函数例如:流水灯例程中使用的端口是macLED1_GPIO_PORT=GPIOB,控制的引脚是GPIO_Pin_0,引脚的模式是 GPIO_Mode_Out_PP(通用推挽输出),引脚的速率是GPIO_Sp...

2019-08-01 11:47:05 1196

原创 C++中关于int *p和 int* p的区别?原书中找到《C++程序设计原理和实践》2010年左右新作作者是C++语言创建者本贾尼 .斯特劳斯特鲁普 BjarneStroustrup27.5.4

根据C++Primer介绍:对于int* p(这种写法合法,但是容易造成误导),其基本数据类型是int,后面的*其实是声明符。在一组公用的数据类型后面可以使用不同的声明符。例如: int i =1024, *p = &i, &r = i; //i是一个int类型的数据,p是一个int型的指针,r是一个int型引用。对于int *p,其和int* p 的含义一样,都表示...

2019-08-01 09:54:07 5278

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除