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

spi通信,一直接收不到数据

[复制链接]
lslp 提问时间:2015-7-22 13:50 /
我用spi1作为主机,spi2作为从机,想实现收发数据,但是一直接收不打数据
新建位图图像.jpg
收藏 1 评论35 发布时间:2015-7-22 13:50

举报

35个回答
stary666 回答时间:2015-7-22 14:02:22
寄存器没配置好
lslp 回答时间:2015-7-22 14:09:13

能具体一点么?
creep 回答时间:2015-7-22 14:20:33
HAL库函数HAL_SPI_Transmit里面就带有TXE标志位检测了,同样的HAL_SPI_Receive里面也有RXNE检测了,没有必要自己再去调用了吧。HAL库的特点就是把这些判断标志位的东西封装在了函数里面,要不和标准库就一样了。
lslp 回答时间:2015-7-22 14:33:54
creep 发表于 2015-7-22 14:20
HAL库函数HAL_SPI_Transmit里面就带有TXE标志位检测了,同样的HAL_SPI_Receive里面也有RXNE检测了,没有必 ...

问题是我接收函数一直就收不到,我去掉while函数,依然就收不到数据
gronau 回答时间:2015-7-22 14:38:31
HAL库里接收发送函数里面有存储数组,你只需要根据参数要求定义好接收位置即可。
lslp 回答时间:2015-7-22 14:43:11
gronau 发表于 2015-7-22 14:38
HAL库里接收发送函数里面有存储数组,你只需要根据参数要求定义好接收位置即可。 ...

什么意思?我自己定义了一个数组,用来放接收的数据,HAL_SPI_receive函数的第三个参数不就是存放数据的地址么?
gronau 回答时间:2015-7-22 14:49:50
lslp 发表于 2015-7-22 14:43
什么意思?我自己定义了一个数组,用来放接收的数据,HAL_SPI_receive函数的第三个参数不就是存放数据的 ...

你说的这个函数我用过,应该还有一个参数是配置接收个数的。仔细看一下。
gronau 回答时间:2015-7-22 14:50:22
lslp 发表于 2015-7-22 14:43
什么意思?我自己定义了一个数组,用来放接收的数据,HAL_SPI_receive函数的第三个参数不就是存放数据的 ...

还有就是注意是8位还是16位通信啊。
creep 回答时间:2015-7-22 14:53:51
lslp 发表于 2015-7-22 14:33
问题是我接收函数一直就收不到,我去掉while函数,依然就收不到数据

如果你想练手或者测试SPI的话建议还是直接连个外设比如外部FLASH或者SD卡模块,那样简单很多。
1234下一页

所属标签

相似问题

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