关于 STM32 SPI 从机模式的问题

发布者:达文西happy最新更新时间:2019-01-16 来源: eefocus关键字:STM32  SPI  从机模式 手机看文章 扫描二维码
随时随地手机看文章

网上有很多关于STM32  作为从机来使用 的 问题  主要还是 从机接收数据错误


1  关于主从机的 时钟悬空配置     可以肯定的说 主机与从机的时钟悬空一定要配成一样的 


这点STM 的官方手册说的很明白


2 从机的波特率 只与 主机提供的 CLK 信号有关


3 通信失败  或者 数据接收错误 问题就出在从机对SPI 的起始信号的判断上面


当使用TI 模式  NSS 信号由硬件  从机对数据的捕获 就很容易 


若没有NSS 信号呢    因为STM32  SPI普通模式 根本就没有对数据的捕获 做什么工作    真的有点糊弄我们


它 只是 当我们把SPI 打开  他就开始进行捕获  而不管SCK 此时是闲置的还是忙的    这就造成了 我们读取的SPI 数据错误


解决这个问题也很简单  只要在软件中 对 SPI 信号进行处理  得到SPI 线路是 忙的 还是空闲的


根本就是对 SPI 信号的 捕获时机


当我们要进行捕获前先对总线SPI 进行判断 若总线SPI 是空闲的  那么就开启SPI 进行数据捕获


若总线SPI 是忙的 就等待 总线空闲了  在进行捕获   经过验证这个方法通信成功率 几乎是没有问题的

关键字:STM32  SPI  从机模式 引用地址:关于 STM32 SPI 从机模式的问题

上一篇:stm32 spi从模式配置解答
下一篇:STM32 SPI SLAVE

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

让菜鸟秒变stm32高手的STM32CubeMX
菜鸟到高手,显得有些霸气哈,不过的确如此,官方带给我们一个比较实用的stm32的工具。这个工具就是STM32CubeMX,昨天玩freeRTOS的时候就提到过。说到freeRTOS,这里就多说两句。全局变量,在任务间相互访问的时候也是需要临界保护的,不然可能会出现奇怪的问题。不过我们可以关掉时间片调度,任务间可以访问全局变量而不用加保护(不等于菜鸟可以随意代码)。关闭了时间片调度,只有发生vTaskDelay的时候才会上下文切换。只要代码合理访问全局变量可以不加保护的。因此代码也不是可以任意书写的,关于freeRTOS的问题,多看看源码,一切都会有答案。源码较少,这里就不过多介绍。关闭时间片不是网上说的configUSE_
[单片机]
STM32上电以后GPIO默认是Floating input
真实案例1: 用开发板STM32的PD13来测试,直接裸露的管脚。 硬件连接我手上发光二极管的比较长的一端也就是 + 极,开发板找GND连接二极管较短的一端也就是 - 极。 #define TSBUZGPIO GPIOD #define TSBUZGPIOPIN GPIO_Pin_13 #define TS_BUZ_H() GPIO_SetBits(TSBUZGPIO ,TSBUZGPIOPIN) #define TS_BUZ_L() GPIO_ResetBits(TSBUZGPIO ,TSBUZGPIOPIN) void TS_Buz_Init(void) { GPIO
[单片机]
<font color='red'>STM32</font>上电以后GPIO默认是Floating input
STM32 特殊功能脚设置为普通脚的方法
一个项目中用到了STM32中的PB3,使用的时候发现这个脚不受控制,查看手册发现这是个特殊功能引脚。PB3 和PB4 分别是JTAG的JTDO和NJTRST脚,在默认情况下,STM都是把他们复用为特殊功能脚,在没有关闭JTAG功能之前,这连个脚不受GPIO的ODR寄存器控制。 要把他们配置为普通的引脚,需要禁止他们的复用功能。库函数是 GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); 注意操作复用功能,则需要开启复用时钟 RCC_APB2PeriphClockCmd( RCC_APB2Periph_AFIO,ENABLE); 在普通引脚配置的
[单片机]
SPI 的主模式模式
主机写 从机读 主机读 从机写 数据输出是将数据送到那两根线上,数据采样是将数据从总线上读取到主从机中。 以下内容来源于《51单片机轻松入门—基于STC15W4K系列》第5章 第5章SPI通信 5.1SPI总线数据传输格式 5.1.1 接口定义 SPI是高速、全双向、同步、四线或三线制串行外围设备接口,采用主从模式结构,支持多从机模式应用,一般仅支持单主机,在主机的移位时钟脉冲下,数据按位传输,可以是高位在前(MSB first),低位在后,也可以低位在前,高位在后的顺序发送,目前应用中的数据速率可达5Mbps以上的水平,SPI接口唯一的一个缺点是没有应答机制确认是否接收到数据,但一般的SPI从器件设计都很完善,只
[单片机]
<font color='red'>SPI</font> 的主<font color='red'>模式</font>和<font color='red'>从</font><font color='red'>模式</font>
STM32和大小端模式
1.大端模式 是指数据的高字节保存在内存的低地址中, 而数据的低字节保存在内存的高地址中, 这样的存储模式有点儿类似于把数据当作字符串顺序处理: 地址由小向大增加,而数据从高位往低位放; 这和我们的阅读习惯一致。 例如 声明一个32位的变量 高地址 0-7位 |/ 8-15位 |/ 16-23位 低地址 24-31位 2.小端模式 是指数据的高字节保存在内存的高地址中, 而数据的低字节保存在内存的低地址中, 这种存储模式将地址的高低和数据位权有效地结合起来, 高地址部分权值高,低地址部分权值低。 例如 声明一个32位的变量 低地址 0-7位 |/ 8-15位 |/ 16-23位 高地址 24-31位 STM32单片机的存储方式为小
[单片机]
STM32 AI实验课程—HAR在STM32L4上的实现
课程目的:旨在为AI深度学习解决方案提供关于ST生态系统的实践体验 实验步骤: 下载AI演示项目到ST开发板上 借助智能手机/平板电脑上的应用程序,将传感器数据和标签记录在ST开发板上 给定的Python脚本将处理数据集并训练NN模型 在STM32CubeMX.AI工具的帮助下,将神经网络训练好的模型导入到STM32项目中 相关软硬件简介 软硬件需求列表 IoT开发板—B-L475E-IOT01A FP-AI-SENSING1 AI特定功能:训练用的数据集、数据标注、STM32模型转换对应代码 其他功能:使用RTOS实现低功耗、手机应用软件“ST BLE Sensor” 实验1:STM32固件下载和演示测
[单片机]
<font color='red'>STM32</font> AI实验课程—HAR在STM32L4上的实现
STM32 SysTick中断使用方法
SysTick中断属于核内外设中断器,中断号为-1。想要使用SysTick中断,只需在SysTick查询定时上进行稍微的修改。需要添加开启中断,直接用中断函数对计数标志位进行清零,不再使用查询方式判断计数是否结束去清零。中断函数接口SysTick_Handler在汇编文件中已经给出定义,直接到文件中查找即可。 本来NVIC提供了中断使能的函数,但是要求中断号要大于0(Value cannot be negative.),所以就不能调用NVIC中断使能函数了,直接在操作寄存器开启中断就可以了。 修改如下: #include delay.h #include led.h void Systick_Delayus
[单片机]
<font color='red'>STM32</font> SysTick中断使用方法
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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