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

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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版