完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
1. 杂谈
快两个月没有写博文了,前段时间确实很忙,以至于天天跟我妈抱怨说快累死了,可是最近才知道我妈的工时变成了早五晚8,却从来没有听到她的抱怨,对比我妈,我真的是差的远,不仅行动上懒惰,在时间规划上也差一大截,所以接下来要多行动少抱怨,享受当下,毕竟好的坏的都是你曾经的一部分。 2.什么是SPI? SPI(Serial Peripheral Interface)是一种串行同步接口,最早由motorola公司提出,用在ADC,flash等与控制器之间通信的场合。同步是它的特点,意思是它在通信时由时钟控制,而不像UART由通信协议规定。 SPI总线一般有四根线,MISO(主输入从输出),MOSI(主输出从输入),SCK(串行移位时钟),NSS(/SS)(片选)。 SPI采用主从方式进行通信,有一个主机,可以跟随多个从机,采用全双工的通信方式,下图是主机和从机的连接方式,注意,不同于UART,发送和接收在两个设备中要交叉连接,这里是主机的MISO和从机的MISO相连,主机的MOSI和从机的MOSI相连,在硬件连接调试时可别弄错了。 下面针对STM32中SPI的四根线进行介绍。
3.1 通讯时序 下图是SPI作为主机时的通讯时序图。 上图包括以下几个信号; 1)起始信号和停止信号 当从机的NSS被拉低时,开始与主机进行通信,当NSS从低变为高后,停止与主机进行通信。 2)触发信号 表示数据变化时刻。 3)采样信号 表示数据的有效传输时刻。这里值得说明的是,采样方式,有四种,由CPOL/CPHA 决定。 CPOL:时钟极性。指 SPI 通讯设备处于空闲状态(不进行数据传输)时, SCK 信号线的电平信号,为0时SCK空闲时为低电平,为1时是高电平。 CPHA:时钟相位。为0时,在SCK的奇数边沿采样,为1时,在SCK的偶数边沿采样。 四种方式总结如下表: 下图是SCK偶数边沿采样,而这个边沿是上升沿还是下降沿取决于SCK空闲时低电平还是高电平,为低电平即CPOL为0时是下降沿采样,反之为上升沿采样。 3.2 数据收发过程 上图是某一种采样模式下,主机的数据收发过程。 1)发送数据时
参考代码如下: 2)SPI的模式初始化 包括SPI的方向,主从选择,数据长度,时钟极性和相位,NSS的选择,波特率的设置,高/低位先行等. 参考代码如下: 之后需要使能SPI外设 3) 数据收发 根据前面SPI的通信过程,在发送数据时,需要等TXE置1才能发送,在发送时把数据存在发送缓冲器里,当RXE置1表示发送一帧完成,接收缓冲器里非空了,可以将接收缓冲器的数据取出。 参考代码如下: |
|
|
|
只有小组成员才能发言,加入小组>>
3320 浏览 9 评论
3000 浏览 16 评论
3496 浏览 1 评论
9069 浏览 16 评论
4089 浏览 18 评论
1190浏览 3评论
612浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
603浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2339浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1899浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-27 07:51 , Processed in 1.165253 second(s), Total 80, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号