NRF24L01使用STM8硬件SPI控制时需要注意的问题
今天使用STM8的硬件SPI来控制NRF24L01,结果自检能通过,但是数据包发送总是错误。
搞了一下午,终于发现了问题的原因。
NRF24L01的CSN脚是用来控制SPI的传输使能。这个脚不能被直接接地,否则模块不工作。每次单片机跟NRF24L01通讯时,需要先拉低这个脚,通讯完成后再拉高。由于是硬件驱动,常常是SPI没有通讯完成,CSN脚就被拉高了。导致数据丢失。所有在CSN脚拉高之前需要先判断SPI是否空闲。
【NRF24L01使用STM8硬件SPI控制时需要注意的问题】测试时还发现,如果SPI是256分频,即使判断SPI是否空闲,再拉高CSN脚,通讯也不成功。所以时钟频率不能太慢。
推荐阅读
- 由浅入深理解AOP
- 【译】20个更有效地使用谷歌搜索的技巧
- mybatisplus如何在xml的连表查询中使用queryWrapper
- MybatisPlus|MybatisPlus LambdaQueryWrapper使用int默认值的坑及解决
- MybatisPlus使用queryWrapper如何实现复杂查询
- iOS中的Block
- Linux下面如何查看tomcat已经使用多少线程
- 使用composer自动加载类文件
- android|android studio中ndk的使用
- 使用协程爬取网页,计算网页数据大小