专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
STM32
SPI小问题
2019-08-14 01:22
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
STM32/STM8
3449
14
1057
硬件SPI,当数据输出的时候要上升沿,数据接受的时候要下降沿怎么办(发完以后马上就要收,所以感觉不能马上变化时序),该怎么处理?
我看历程的时候,它直接没变,模式依然也是上升沿有效,但是是对的,我想问下这是为什么?
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
14条回答
xuande
1楼-- · 2019-08-14 03:08
你没有理解SPI的机制。
时钟始终都是主机发出的,这一点很重要。
如果主机要发送,一切边沿都是自己在控制,
它一定是在输出数据、并且数据稳定之后,才发出边沿信号通知从机接收,并且预留足够的时间;
如果主机要接收,边沿同样是主机在控制,
如果主机在某个边沿接收数据,意味着:在此边沿的前面一个边沿,子机已经把数据放在数据线了。所以,这两个边沿必然是相反的。
自己理一理。
加载中...
SNEZSTM32
2楼-- · 2019-08-14 05:39
精彩回答 2 元偷偷看……
加载中...
SNEZSTM32
3楼-- · 2019-08-14 09:53
结论是不是发送和接受的边沿总是反的
加载中...
来俩不甜的
4楼-- · 2019-08-14 15:36
读数据要在下降沿,发数据在上升沿。有啥冲突的吗?
加载中...
SNEZSTM32
5楼-- · 2019-08-14 18:44
来俩不甜的 发表于 2017-9-11 16:05
读数据要在下降沿,发数据在上升沿。有啥冲突的吗?
没冲突,我只是觉得数据有效都是一个边沿,感觉也没有问题,因为我感觉MISO MOSI是两条线,互不干扰。
不太明白为什么一个边沿是读,一个边沿是写
加载中...
shuaigew88
6楼-- · 2019-08-14 20:17
SPI通讯可以配置成4种模式,时钟空闲为0、时钟空闲为1(这两个不是很重要)、数据在时钟上升沿采样、数据在时钟下降沿采样。主机应该配置成哪种模式完全由从设备来决定。如果从设备的时钟有效是上升沿的话那么就表示从机是在主机的时钟上升沿到来后即采样主机MOSI上的数据同时从机会在此时从miso管脚发送一位数据,比如从机在时钟的上升沿采样那么具体的操作就是:
SPI_SCK =0; //主机拉低时钟线,主从双方都将准备发送数据
SPI_MOSI =x; //主机将数据放置发送数据总线,此时从机也准备将数据放在MISO管脚等待时钟上升沿
SPI_SCK =1; //在时钟上升沿后从机采样主机MOSI上的数据同时在MISO数据线上发送一位数据给主机
m =SPI_MISO; //主机采样从机发送的数据
应该是这样了。
加载中...
1
2
3
下一页
一周热门
更多
>
相关问题
STM32F4上I2C(在PROTEUS中模拟)调试不通的问题
6 个回答
芯片供应紧张,准备换个MCU,MM32L系列替换STM32L系列的怎么样?
7 个回答
STM32同时使用两个串口进行数据收发时数据丢包的问题
5 个回答
STM32F103串口通信死机问题
4 个回答
STM32WLE5CC连接SX1268在LoRa模式下能与 SX1278互通吗?
2 个回答
STM32开发板免费用活动
7 个回答
stm32 处理 DHT11占用太多时间,大家程序是怎么设计的
8 个回答
分享一个STM32单片机做的离线编程器代码
9 个回答
相关文章
ST公司第一款无线低功耗单片机模块有效提高物联网设计生产效率
0个评论
如何实现对单片机寄存器的访问
0个评论
通过USB用STM32片内自带Bootloader下载程序及注意事项
0个评论
欲练此功必先自宫之STM32汇编启动,放慢是为了更好的前行
0个评论
×
关闭
采纳回答
向帮助了您的网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
STM32
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
关闭
您已邀请
15
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
你没有理解SPI的机制。
时钟始终都是主机发出的,这一点很重要。
如果主机要发送,一切边沿都是自己在控制,
它一定是在输出数据、并且数据稳定之后,才发出边沿信号通知从机接收,并且预留足够的时间;
如果主机要接收,边沿同样是主机在控制,
如果主机在某个边沿接收数据,意味着:在此边沿的前面一个边沿,子机已经把数据放在数据线了。所以,这两个边沿必然是相反的。
自己理一理。
没冲突,我只是觉得数据有效都是一个边沿,感觉也没有问题,因为我感觉MISO MOSI是两条线,互不干扰。
不太明白为什么一个边沿是读,一个边沿是写
SPI_SCK =0; //主机拉低时钟线,主从双方都将准备发送数据
SPI_MOSI =x; //主机将数据放置发送数据总线,此时从机也准备将数据放在MISO管脚等待时钟上升沿
SPI_SCK =1; //在时钟上升沿后从机采样主机MOSI上的数据同时在MISO数据线上发送一位数据给主机
m =SPI_MISO; //主机采样从机发送的数据
应该是这样了。
一周热门 更多>