stm32 SPI通信 操作寄存器

发布者:lambda21最新更新时间:2018-08-26 来源: eefocus关键字:stm32  SPI通信  操作寄存器 手机看文章 扫描二维码
随时随地手机看文章

SPI(Serial Peripheral Interface--串行外设接口) 总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息。 SPI是Freescale(原 Motorola)公司首先在其处理器上定义的。

    SPI是一种高速、主从式、全双工、同步传输的通信总线,SPI总线在物理层体现为四根传输线:

  • MOSI (Master Output Slaver Input) – 主器件数据输出,从器件数据输入

  • MISO (Master Input Slaver Output)  – 主器件数据输入,从器件数据输出

  • SCLK – 时钟信号,由主器件产生

  • NSS – 从器件使能信号,由主器件控制,有的IC会标注为CS(Chip select)

    CS线用于控制片选信号,当一个SPI从设备的CS线识别到了预先规定的片选电平,则该设备被选中。显然可以通过CS线,完成“一主多从”的SPI网络架设,在进行“一主一从”的SPI通信时,SPI并不是必须的。

    

    SPI总线传输数据时,由主机的SCLK线提供时钟脉冲,从机被动的接收时钟脉冲。主机在数据发送前,将数据写入数据寄存器,等待时钟脉冲移位输出,每个脉冲周期传输1位数据。 从机在主机的数据发送中,依靠主机的时钟,将从机的数据寄存器内容移位发送。所以要实现主从数据交换,在时钟信号前,主机 从机都必须先将数据写入数据寄存器,并且从机必须在主机前写入,然后由主机的SCLK时钟驱动发送。 不注意这个问题很容易造成SPI接收的数据错位。

 

    这样的全双工、同步传输完全依赖于 主机控制的时钟线SCLK,而且SCLK上只有数据传输的时候才有时钟信号。主机向从机发送数据不会有问题,但是如果从机主动向主机发送数据呢? 

    从机要发送数据,必须要有SCLK的时钟,所以只能主机发送一个DUMMY(哑巴)字节,产生时钟,来实现和从机的数据交换。 从设备只能被动发送数据,无法主动发送数据。

 

    本例实现 通过将STM32上的2个SPI接口对接,进行一个简单的数据交换。使用SPI1作为主设备,SPI2作为从设备,通过串口查看数据通信的情况。


关键字:stm32  SPI通信  操作寄存器 引用地址:stm32 SPI通信 操作寄存器

上一篇:关于STM32寄存器的理解
下一篇:STM32影子寄存器的作用

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

STM32系统芯片,加快LoRa IoT智能设备开发
单片集成STM32微控制器 IP和增强版Semtech射频模块 支持LoRa®等全球低功耗广域网接入 意法半导体工业产品10年生命周期滚动保证 通过智能基础设施及物流、智能工业和智能生活促进世界可持续发展,横跨多重电子应用领域的全球领先的半导体供应商意法半导体(STMicroelectronics,简称ST; 纽约证券交易所代码:STM)展示了全球首款通过长距离无线技术将智能设备连接到物联网(IoT)的LoRa®系统芯片(SoC)。 STM32WLE5 系统芯片使产品开发人员能够创建远程环境传感器、仪表、跟踪器和过程控制器等设备,帮助企业有效地管理能源和资源的使用情况。 该系统芯片在一个易于使用的单片产品内整合
[单片机]
<font color='red'>STM32</font>系统芯片,加快LoRa IoT智能设备开发
基于STM32的红外光通信装置的设计
引言 自20世纪80年代以来,无线通讯技术取得了飞速发展,它不受时空限制,能采取灵活多样的方式,确保语音、数据和图像的综合传输畅通无阻,具有无需架设复杂的传输线路和通信地点灵活的特点。其中,蓝牙技术是一种新兴的近距无线传输技术,但蓝牙技术的最大障碍是过于昂贵,抗干扰能力弱、通信距离短、存在信息安全问题,使其用户群数量受到限制。同时大范围测试与研发成本过高,不利于蓝牙通讯技术的大规模研发与广泛应用。 红外通信以红外光作为载体传送数据信息,无需申请频率的使用权,因此,红外通信使用方便,且具有体积小、功耗低、价格便宜、连接方便等特点。根据光的独立性传播原理,红外通信之间无相互干扰,且不怕散射电磁波干扰。此外,红外线发射角度较小,传输安全
[单片机]
基于<font color='red'>STM32</font>的红外光<font color='red'>通信</font>装置的设计
STM32学习笔记4:外部中断
NVIC: STM32F40xx/STM32F41xx的92个中断里面,包括10个内核中断和82个可屏蔽中断,具有16级可编程的中断优先级,而我们常用的就是这82个可屏蔽中断。 那么我们如何管理82个外部中断呢? 首先,对STM32中断进行分组,组0~4。同时,对每个中断设置一个抢占优先级和一个响应优先级值。分组配置在SCB- AIRCR寄存器,如下表: 抢占优先级 & 响应优先级区别1.高优先级的抢占优先级是可以打断正在进行的低抢占优先级中断的。 2.抢占优先级相同的中断,高响应优先级不可以打断低响应优先级的中断。 3.抢占优先级相同的中断,当两个中断同时发生的情况下,哪个响应优先级高,哪个先执行。 4.如果两个中断的
[单片机]
<font color='red'>STM32</font>学习笔记4:外部中断
stm32---DAC
DAC即数字模拟转换器,它可以将数字信 号转换为模拟信号。 它的功能与 ADC 相反。在常见的数字信号系统中,大部分传 感器信号被转化成电压信号,而 ADC 把电压模拟信号转换成易于计算机存储、 处理的数字编码,由计算机处理完成后,再由 DAC 输出电压模拟信号,该电压 模拟信号常常用来驱动某些执行器件,使人类易于感知。如音频信号的采集及还 原就是这样一个过程。 触发方式 前面是定时器TIM,中间是外部中断9,后面是软件触发 dac.c #include dac.h void DAC1_Init() { GPIO_InitTypeDef GPIO_InitStructure; DAC_InitTyp
[单片机]
STM32外部中断详解
一、基本概念 ARM Coetex-M3内核共支持256个中断,其中16个内部中断,240个外部中断和可编程的256级中断优先级的设置。STM32目前支持的中断共84个(16个内部+68个外部),还有16级可编程的中断优先级的设置,仅使用中断优先级设置8bit中的高4位。 STM32可支持68个中断通道,已经固定分配给相应的外部设备,每个中断通道都具备自己的中断优先级控制字节PRI_n(8位,但是STM32中只使用4位,高4位有效),每4个通道的8位中断优先级控制字构成一个32位的优先级寄存器。68个通道的优先级控制字至少构成17个32位的优先级寄存器。 4bit的中断优先级可以分成2组,从高位看,前面定义的是抢占式优先级,
[单片机]
stm32f407之基本定时器TIM6&TIM7(操作寄存器
基本定时器TIM6和TIM7包括一个由可编程分频器驱动的16位自动重载计数器。它可以用作普通的定时器,也可以用来驱动DAC。这两个定时器是完全独立的,不共享任何资源。更多时候是与DAC平配合使用。 作为定时器的配置步骤: 1.设置中断优先级分组(如果之前没有设置),这个最好一个程序里只在开头设置一次。 2.使能相关时钟。 3.设置分频。 4.清空计数器的值。 5.设置自动重装寄存器的值。 6.是否允许中断。 7.如果允许中断,设置中断优先级,使能中断。 8.使能计数器。 程序: /************************************ 标题:定时器TIM7
[单片机]
STM32 CAN模块使用详解
STM32 CAN模块使用详解.重点介绍以STM32F103E系列芯片为基础介绍CAN 总线的使用方法。CAN 总线在控制领域使用的非常广泛,如今大多数CPU芯片外围都扩展CAN接口。 1. 硬件基础 CAN总线工作需要两根数据线,RX和TX,即为输入总线和输出总线。一般CPU与外界通信需要接一个驱动芯片(这点很像UART接口),常用的CAN芯片主要有:SN65VHD230、PCA82C250T等,本系统使用SN65VHD230作为CAN接口芯片。而CPU提供的CAN接口为CAN_L和CAN_H。 2. 软件设计 在进行软件设计时,我们首先来看这样的一个结构体: typedef struct { uint32_t StdId;
[单片机]
142条STM32遇到的坑,你知道几个?
1、AHB系统总线分为APB1(36MHz)和APB2(72MHz),其中2 1,意思是APB2接高速设备。 2、Stm32f10x.h相当于reg52.h(里面有基本的位操作定义),另一个为stm32f10x_conf.h专门控制外围器件的配置,也就是开关头文件的作用 3、HSE Osc(High Speed External Oscillator)高速外部晶振,一般为8MHz,HSI RC(High Speed InternalRC)高速内部RC,8MHz 4、LSE Osc(Low Speed External Oscillator)低速外部晶振,一般为32.768KHz,LSI RC(Low Speed InternalR
[单片机]
142条<font color='red'>STM32</font>遇到的坑,你知道几个?
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

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

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