stm32 SPI 接口

发布者:Ziyu2022最新更新时间:2016-09-24 来源: eefocus关键字:stm32  SPI  接口 手机看文章 扫描二维码
随时随地手机看文章
1、SPI简介 
SPI 是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议,STM32也有SPI接口。 
SPI接口一般使用4条线:  
MISO 主设备数据输入,从设备数据输出。 MOSI 主设备数据输出,从设备数据输入。 SCLK时钟信号,由主设备产生。 CS从设备片选信号,由主设备控制。 
SPI主要特点有:可以同时发出和接收串行数据;可以当作主机或从机工作;提供频率可编程时钟;发送结束中断标志;写冲突保护;总线竞争保护等。 
SPI总线四种工作方式 SPI 模块为了和外设进行数据交换,根据外设工作要求,其输出串行同步时钟极性和相位可以进行配置,时钟极性(CPOL)对传输协议没有重大的影响。如果CPOL=0,串行同步时钟的空闲状态为低电平;如果CPOL=1,串行同步时钟的空闲状态为高电平。时钟相位(CPHA)能够配置用于选择两种不同的传输协议之一进行数据传输。如果CPHA=0,在串行同步时钟的第一个跳变沿(上升或下降)数据被采样;如果CPHA=1,在串行同步时钟的第二个跳变沿(上升或下降)数据被采样。SPI主模块和与之通信的外设备时钟相位和极性应该一致。
 
stm32 SPI 接口 - dzdesigned80 - dzdesigned80的博客
 
从选择(NSS)脚管理
有2种NSS模式:
图211● 软件NSS模式:可以通过设置SPI_CR1寄存器的SSM位来使能这种模式(见)。在这种模式下NSS引脚可以用作它用,而内部NSS信号电平可以通过写SPI_CR1的SSI位来驱动
● 硬件NSS模式,分两种情况:
─ NSS输出被使能:当STM32F10xxx工作为主SPI,并且NSS输出已经通过SPI_CR2寄存器的SSOE位使能,这时NSS引脚被拉低,所有NSS引脚与这个主SPI的NSS引脚相连并配置为硬件NSS的SPI设备,将自动变成从SPI设备。 当一个SPI设备需要发送广播数据,它必须拉低NSS信号,以通知所有其它的设备它是主设备;如果它不能拉低NSS,这意味着总线上有另外一个主设备在通信,这时将产生一个硬件失败错误(Hard Fault)。
─ NSS输出被关闭:允许操作于多主环境。
 
● NSS:从设备选择。这是一个可选的引脚,用来选择主/从设备。它的功能是用来作为“片选引脚”,让主设备可以单独地与特定从设备通讯,避免数据线上的冲突。从设备的NSS引脚可以由主设备的一个标准I/O引脚来驱动。一旦被使能(SSOE位),NSS引脚也可以作为输出引脚,并在SPI处于主模式时拉低;此时,所有的SPI设备,如果它们的NSS引脚连接到主设备的NSS引脚,则会检测到低电平,如果它们被设置为NSS硬件模式,就会自动进入从设备状态。当配置为主设备、NSS配置为输入引脚(MSTR=1,SSOE=0)时,如果NSS被拉低,则这个SPI设备进入主模式失败状态:即MSTR位被自动清除,此设备进入从模式

关键字:stm32  SPI  接口 引用地址:stm32 SPI 接口

上一篇:stm32 SPI 读取和写入的问题
下一篇:stm32 串口连续接收 发送的出错的问题

推荐阅读最新更新时间:2024-03-16 15:11

STM32 USB-HID的调试记录
1、使用USB 的鼠标方式进行。HID设备方式,即插即用。在输入端可以看到人体输入端; 2、HID设备,可以使用porthelper调试USB,BUS Hound抓取USB包。 资料参考1: http://www.openedv.com/posts/list/41451.htm 2.1 通过Bus Hound软件可以看到连接成功外设USB设备:(如下图所示) 2.2 鼠标按下后获取的数据,左键、右键还有翻页和空键。 2.3 USB调试器可以发现外接的设备。查找后界面如下。但是无法在接收区接收到数据。 将CC1101和USB-HID通信以及串口结合起来,做了简单的演示功能。 测试条件:PC机使用
[单片机]
<font color='red'>STM32</font> USB-HID的调试记录
串口通信的实验
串口操作相关库函数(省略入口参数): void USART_Init(); //串口初始化:波特率,数据字长,奇偶校验,硬件流控以及收发使能 void USART_Cmd();//使能串口 void USART_ITConfig();//使能相关中断 void USART_SendData();//发送数据到串口,DR uint16_t USART_ReceiveData();//接受数据,从DR读取接受到的数据 FlagStatus USART_GetFlagStatus();//获取状态标志位 void USART_ClearFlag();//清除状态标志位 ITStatus USART_GetITStatus();/
[单片机]
串口通信的实验
RS-232串行通信与单片机接口简介
在这一课里,我们一起来学习RS-232C串行通信相关标准及单片机和电脑的RS-232C串行通信接口技术简介,为学习和开发单片机串口通信应用系统打好基础,希望大家在看完这篇文章后对串行通信有初步的认识。 【通信基本概念】 什么是通信?简单地说,不同的系统经由线路相互交换数据,就是通信。通信的主要目的是将数据从一端传送到另一端,达到数据交换的目的。例如,从人与人之间的对话、计算机与设备之间的数据交换到计算机与计算机间的数据传送,乃至于广播或卫星都是通信的一种,一个完整的通信系统包括发送端、接收端、转换数据的接口及传送数据的实际信道。 【通信的种类】 按照通信的形式可以分为两种,其中一种为并行传输的通信,即并行通信(Paralle
[单片机]
RS-232串行通信与单片机<font color='red'>接口</font>简介
LabVIEW及GPIB接口的测试系统开发详解
  计算机技术和大规模集成电路技术的发展,促进了数字化仪器、智能化仪器的快速发展。与此同时,工程上也越来越希望将常用仪器设备与计算机连接起来组成一个由计算机控制的智能系统。而工程中常用仪器设备种类繁多、功能各异、独立性强,一个系统往往需要多台不同类型的仪器协同工作,应用一般串、并行接口难以满足要求。为此,人们从60年代就开始着手研究能够将一系列仪器设备和计算机连成整体的接口系统。GPIB正是这样的接口,它作为桥梁,把各种可编程仪器与计算机紧密地联系起来,从此电子测量由独立的、传统的单台仪器向组成大规模自动测试系统的方向发展。GPIB的用途十分广泛,现已广泛用于计算机与计算机之间的通讯,以及对扫描仪、图像记录仪、数字存储示波器、频谱仪
[测试测量]
LabVIEW及GPIB<font color='red'>接口</font>的测试系统开发详解
MSP430F5529液晶SPI通信协议
#include uchar ascii_table_8x16 ; uchar ascii_table_5x7 ; void delay(int i) { int j,k; for(j=0;j for(k=0;k 110;k++); } void transfer_command(int data1) { char i; cs0; cd0; for(i=0;i 8;i++) { sclk0; if(data1&0x80) sda1; else sda0; sclk1; data1=data1 =1; } } void transfer_da
[单片机]
STM32高级开发(4)-ubuntu的简介和命令
在也许大家历经了诸多困难终于安装并设置好了系统平台。但是在新的系统下两眼一抹黑,不知道怎么用,我们接下来便来介绍一些ubuntu的基础特性、操作和终端的基础指令,来为接下来的编程开发做好铺垫。 Ubuntu GUI的基础设计理念 首先记住这个:Linux的核心思想即一切皆是文件,设备是文件,系统是文件。比如在我们插入一个USB设备,/etc的目录下多一个USB设备的文件夹。而对USB所有的操作都是通过读写这个文件进行。 可以说ubuntu的操作和显示基本上是融合了OSX 和windows两者的特性。 ubuntu下,基础的双击打开、右键是菜单,这些操作与windows和OSX基本是无异的。 窗口的放大缩小与关闭在左
[单片机]
<font color='red'>STM32</font>高级开发(4)-ubuntu的简介和命令
嵌入式CAN总线控制器与DSP的接口
  现场总线是一种开放式、 数字化、多点通信的控制系统局域网络, 是当今自动化领域中最具有应用前景的技术之一。CAN总线是现场总线中的应用热点,CAN总线支持分布式控制和适时控制的串行通信网络。   由于CAN总线具有通信速率高、开放性好、报文短、纠错能力强以及控制简单、扩展能力强、系统成本低等特点,越来越受到人们的关注。基于CAN总线的CAN控制器具有完成CAN总线通信协议所要求的全部必要功能,因此CAN总线控制器与其它微处理器的接口成为设计CAN总线系统的首要工作。   当前已有一些微处理器将CAN控制器嵌入到系统之中,成为在片的微处理器,例如P8XC592 (其内核即为80C51的CPU),MCS96系列中的 87
[嵌入式]
STM32裸机编程的基础知识(5)
闪烁 LED 现在我们已经搭建好了完整的构建、烧写的基础设施,是时候让固件做点儿有用的事情了。什么是有用的事情?当然是闪烁 LED 了!Nucleo-F429ZI 开发板有 3 颗 LED,在开发板数据手册的 6.5 节,我们可以看到板载 LED 连接的引脚: PB0: green LED PB7: blue LED PB14: red LED 再次修改 main.c 文件,添加上引脚定义,然后把蓝色 LED 引脚设为输出模式,开始无限循环。首先,把我们之前讨论过的 GPIO 定义和模式设置拷贝过来,注意,现在又新加了一个 BIT(position) 工具宏: #include inttypes.h #include
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved