stm32 spi接收数据:STM32学习笔记,SPI通信异常分析
SPI,全称为 Serial Peripheral Interface(串行外设接口),是一种用于短距离通信的同步串行通信接口,主要应用在嵌入式系统。
SPI的应用场合很广,显示模组、时钟芯片、存储芯片、温度传感器等众多器件都有使用SPI接口通信。这些器件通常作为从设备,STM32作为主设备来控制它们。
STM32 SPI基础内容
绝大部分STM32芯片都有多个SPI外设,它可与外部SPI器件进行半双工/全双工同步串行通信。
1. SPI特性
- 三条线全双工、双线单工同步传输
- 支持 8 位或 16 位传输帧格式选择
- 支持主模式或从模式操作
- 可编程的时钟极性和相位
- 支持 MSB 或 LSB 数据顺序
- 支持DMA收发数据
更多特性请查阅《STM32参考手册》。
2. 引脚描述
MISO:主输入/从输出数据;
MOSI:主输出/从输入数据;
SCK:时钟(主输出,从输入时钟);
NSS:从器件选择,可理解片选信号;
3. SPI时序
SPI的时序中有两个参数需要注意,那就是时钟相位和时钟极性。在STM32中,SPI时序由CPOL 和 CPHA 这两位来决定。
通过软件配置这两个参数,可分为四种时序关系,如下图:
4. 数据帧格式
串行同行数据传输分为 MSB 和 LSB,也就是最高有效位在前,还是最低有效位在前。(注:最左边的比特位即为最高有效位)。
比如传输一个字节:0x95(1001 0101)。
如果按照MSB(高位在前),则发送顺序:1001 0101。
如果按照LSB(低位在前),则发送顺序反过来:1010 1001。
STM32 SPI参数配置
通常STM32的SPI作为主机连接外部从机,要与从机建立正常通信,就必须与从机的参数匹配才行。
这里以【STM32作为SPI主机读写SPI Flash】为例,主要配置参数:双向全双工、主机模式、8位数据、MSB等。
1. 标准外设库配置
2. STM32CubeMX配置
首先选择全双工主机模式,然后再逐步配置下面参数。这里的波特率时钟灰色不可配置,由你系统时钟和分频时钟决定。
这些配置参数比较容易理解(英文清晰明了),若不懂可针对性查阅参考手册。
1、spi clk传输多个字节是中间有断续
NSSP Mode模式,在每发送完一个字节后,会有一位的空闲这个模式一定要Disable
NSSP模式下,每传输一个字节,片选会保持一个时钟周期有高电平,这时,时钟也会有一个周期的空闲,导致数据上会保持上一个状态一个时钟周期的多余电平状态,导致后面的0、1码全部错乱。
另外,不同的外设对时钟极性,采样边沿可能不一样,需要根据外设具体配置。
2、SPI对接外设通信异常,挂示波器到SPI CLK通信正常。
原因可能是SPI CLK需要配置GPIO上下拉。
推荐
- 1文昌鸡的来历神秘,深读丨崭露头角的儋州鸡能否撼动文昌鸡霸主地位189
- 2猫咪对你不满时的8个表现:猫咪对你露肚子就是喜欢你112
- 3冬季腹泻如何调理?冬天腹泻匆匆来临做好这6点178
- 4如何在阳台上建一个养宠物的房子?想让院子里莺飞燕舞来建一个引鸟花园吧368
- 5盘点那些被玩坏的蒙圈猫咪 怪癖猫爽埋蕾丝bra嗑太嗨 122
- 6德牧也算禁养犬吗?为什么大家怕养,德牧448
- 7剑网3深度评价:那些我们笑过的截图第1期430
- 8猫界智商最高的5种猫 世界智商前十的猫猫你家的猫猫在里面吗435
- 9铲屎官带猫探险:铲屎官带波斯猫爬山的神级训练大法145
- 10被狗咬伤打疫苗还会发狂犬病吗?疫苗,谈犬色变一女子被狗咬伤后打了4针疫苗209
宠物
- 1对肝最好的食物水果是什么?夏季对肝好的水果有哪些122
- 2单身狗越来越多是什么原因?为什么单身狗越来越多396
- 3狗狗尿频怎么办快速治疗?狗尿频怎么办最好带狗做一下检查446
- 4猫咪有这4种表现说明它开始排斥你,家里的猫咪六种表现说明了对主人的不满117
- 5刚刚到家的兔兔怎么喂食?喂食兔兔蔬菜的注意事项137
- 6墨龟的饲养方法和注意事项:关于墨龟的二三事你一定感兴趣的309
- 7冬天鼠鼠保暖最好用什么?冬天鼠兔会断粮,好消息是152
- 8王守义十三香销售年报 王守义已注册十四香商标104
- 9家里突然来了一只巨大的猫 小伙家门口出现一只猫215
- 10想和你在雪中漫步一不小心白了头:我想和你雪中漫步只求一路走到白头373