天线|RF射频
直播中

周志光

7年用户 180经验值
私信 关注
[问答]

stm8 nrf24l01驱动问题如何解决

把原子哥的STM32 nrf24l01例程移植到stm8s103f3p6上,用的硬件spi,结果出现了一些问题
接收数据没问题,发送数据的话,一部分nrf24l01模块不行
后来仔细观察发现,所有右上角标A的nrf24l01都可以正常发送接收,所有角标为M的都是只能接收,发送不出去,所有发送接收寄存器都检查过了结果无误
stm32上就没这问题,求助

回帖(4)

李长鹰

2020-6-10 15:09:22
是stm32先向stm8发数据,然后进入接收模式,stm8先为接收模式,收到数据后转发送,就在stm8发送时出现的问题,如果等待IRQ的话会出现未知错误,如果延时的话返回的是MAX_TX自动重发最多次错误
举报

李可仪

2020-6-10 15:16:10
用A的吧。模块芯片有些参差不齐
举报

刘萍

2020-6-10 15:22:12
官方手册里也没说A版和M版有啥差别......我现在只有两个A版的,X宝上面买的话,也是看运气,大部分都是M版
举报

张子腾

2020-6-10 15:30:55
经过一个星期的排查,问题解决了!!!原来把SPI速度设置的64分频,速度只有125k,太慢了,A版本的NRF24l01支持低速SPI,而M版本的不支持低速,重新调整了SPI_CR1寄存器的波特率为二分频,8M速度,能用了!在此也提醒各位坛友,模拟的SPI只能驱动NRF24L01 A,如果想让NRF24L01 M驱动,必须用硬件的高速SPI
举报

更多回帖

发帖
×
20
完善资料,
赚取积分