完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
寄存器没配置好
|
|
|
|
|
|
|
|
|
|
|
|
HAL库函数HAL_SPI_Transmit里面就带有TXE标志位检测了,同样的HAL_SPI_Receive里面也有RXNE检测了,没有必要自己再去调用了吧。HAL库的特点就是把这些判断标志位的东西封装在了函数里面,要不和标准库就一样了。
|
|
|
|
|
亲爱的娜娜 发表于 2019-2-19 14:02 问题是我接收函数一直就收不到,我去掉while函数,依然就收不到数据 |
|
|
|
|
|
HAL库里接收发送函数里面有存储数组,你只需要根据参数要求定义好接收位置即可。
|
|
|
|
|
|
什么意思?我自己定义了一个数组,用来放接收的数据,HAL_SPI_receive函数的第三个参数不就是存放数据的地址么? |
|
|
|
|
|
你说的这个函数我用过,应该还有一个参数是配置接收个数的。仔细看一下。
|
|
|
|
|
|
还有就是注意是8位还是16位通信啊。 |
|
|
|
|
|
如果你想练手或者测试SPI的话建议还是直接连个外设比如外部FLASH或者SD卡模块,那样简单很多。 |
|
|
|
|
|
|
|
|
|
|
|
这个注意到了,,而且你说的数据大小,函数参数里也有定义。。我刚才说错了,第二个参数是数据地址,第三个参数是数据大小 |
|
|
|
|
|
我想用spi控制nrf24l01实现无线通信。做过吗?给提点意见 |
|
|
|
|
|
没做过,但是基本的SPI配置都是差不多的,根据nrf2410的SPI时序要求,把SPI的初始化,读写函数写好,剩下的就是配置nrf2410的部分了,这个应该有很多参考代码。 |
|
|
|
|
|
个人建议拿示波器边调试边测量信号比较快,也容易查找问题所在。 |
|
|
|
|
|
|
|
|
|
|
|
以前没怎么写过,新手,所以初始化函数是cubemx生成的
|
|
|
|
|
|
首先用示波器看看SCK有没有波形,时钟在不在范围内,再就是更改那两个控制时序的参数。
|
|
|
|
|
|
|
|
|
我也遇到了同样的问题,难道是共性?使用的L476,CUBE生成的工程,在MISO端口已经用示波器得到了数据,但是HAL_SPI_TransmitReceive接到的数据全是0.(黄色为CLK,蓝色为MISO)
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1328 浏览 1 评论
1070 浏览 0 评论
936 浏览 0 评论
STM32F405驱动DS1302时钟模块,输出时间错乱该怎么排查?
5174 浏览 2 评论
stm32f405rgt6驱动DS1302ZN出现时间错乱问题
3974 浏览 1 评论
浏览过的版块 |
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-13 20:58 , Processed in 1.121629 second(s), Total 113, Slave 94 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
566