野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9549|回复: 2

STM32F03C8 SPI 主、从数据不同步

[复制链接]
发表于 2018-11-10 16:58:35 | 显示全部楼层 |阅读模式
SPI.png
目的:利用SPI,“并行”发送2位的串行数据。
SPI 1 设为从机
SPI 2 设为主机
(其他设置基本相同)
SPI 2_SCK与SPI 1_SCK相连,为SPI 1提供主机时钟。
Data1->SPI 1 给SPI 1 装数据
Data2->SPI 2 给SPI 2 装数据 (SPI 1 自动开始发送,SPI 1同步发送。)

以上是想当然的做法,但实现结果如上面的波形。
黄色:  SPI 2_SCK  (SPI 2_SCK与其相连)
蓝色:SPI 2_SNN (示波器的触发信号)
紫色:SPI 1_MISO
绿色:SPI 2_MOSI

因为 Data 1 = Data 2 ,按我想象  SPI 1_MISO 与 SPI 2_MOSI 应该完全同步的。
但,事实错开了一个时钟。

之前,AVR用的多,最近也是有所需求,看中了STM32的资源更丰富,首次使用。
问题描述,不知道够不够清楚。有问题我再补充,还望大家指教。



回复

使用道具 举报

 楼主| 发表于 2018-11-10 16:59:50 | 显示全部楼层
本帖最后由 flwjn 于 2018-11-10 17:01 编辑

数据是16位的:       SPI_I2S_SendData(SPI1,0x3333);
                              SPI_I2S_SendData(SPI2,0x3333);



回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-11-12 13:06:36 | 显示全部楼层
问题已解决。

初始化时,SPI 1 先初始化的,之后SPI 2初始化时动了时钟。导致数据错位。
将初始化顺序颠倒一下,解决。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-5-19 07:09 , Processed in 0.069380 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表