你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

SPI看懵了,求解啊

[复制链接]
wyxy163@126.com 提问时间:2015-7-9 10:14 /
提示: 作者被禁止或删除 内容自动屏蔽
收藏 评论11 发布时间:2015-7-9 10:14

举报

11个回答
星辰一方 回答时间:2015-7-9 10:22:36
大概是SPI这个通讯协议本质就是:移位操作,接收一位同时发一位……
个人理解,仅供参考
creep 回答时间:2015-7-9 10:46:54
1、SPI在写的时候可以不用判断接收缓冲区。
2、SPI在接收的时候因为是主模式所以要向从设备写数据提供时钟,这个时候写的数据具体是什么应该关系不大。

建议调用库函数处理发送接收数据。
  1. HAL_StatusTypeDef HAL_SPI_TransmitReceive(SPI_HandleTypeDef *hspi, uint8_t *pTxData, uint8_t *pRxData, uint16_t Size, uint32_t Timeout)
复制代码

moyanming2013 回答时间:2015-7-9 10:56:30
creep 发表于 2015-7-9 10:46
1、SPI在写的时候可以不用判断接收缓冲区。
2、SPI在接收的时候因为是主模式所以要向从设备写数据提供时钟 ...

学习了。。。
支持使用库
stary666 回答时间:2015-7-9 11:13:00
自己写就行了
lkl0305 回答时间:2015-7-9 11:36:01
这个建议楼主找个spi的基础知识看看先,然后再看程序
魅影迷踪 回答时间:2015-7-9 12:30:39
时序要求吧
jcx0324 回答时间:2015-7-9 13:06:27
读的时候也是需要发数据过去的
风子 回答时间:2015-7-9 16:12:32
SPI是环形移位寄存器的数据交换,你得给从机发数据(一般发0),才能读得需要的从机数据,同时发数据也提供时钟
watershade 回答时间:2015-7-9 20:40:01
SPI只有一个sbuf,不想UART收发各有一个缓存。当你接受的时候,向缓存里面写入0xff(其实别的也可以,只要另一个设备忽略你发送的信息即可。)

假设你是从机,如果主机没有刻意向SBUF里面写东西,那当你读数据时将读会status。

SPI收发

SPI收发

这张图是官方的图。收发各有一个buf。当sck发送心跳时,一个心跳移动一位,这其实就是个串行移位寄存器。
埃斯提爱慕 回答时间:2015-7-9 22:59:30
提示: 作者被禁止或删除 内容自动屏蔽
112207301219 回答时间:2015-7-10 00:26:32
查手册可以找到答案

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版