lslp 发表于 2015-7-22 13:50:18

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

我用spi1作为主机,spi2作为从机,想实现收发数据,但是一直接收不打数据

stary666 发表于 2015-7-22 14:02:22

寄存器没配置好

lslp 发表于 2015-7-22 14:09:13

stary666 发表于 2015-7-22 14:02
寄存器没配置好

能具体一点么?

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卡模块,那样简单很多。
页: [1] 2 3 4
查看完整版本: spi通信,一直接收不到数据