其实网上NRF24L01的资料很多,例程也很多本不应该有什么大问题,但是确出了各种奇怪嘚问题花了不少时间。
-
用最小系统板搭了个平台加上网上的例程,问题是检查NRF24L01的时候一直没法找到,读写地址寄存器失败起初怀疑是引线的问题,自己检查连线以及针脚定义都没有发现问题,既然针脚没有问题怀疑是SPI通讯的问题接着检查SPI配置,都没有发现明显嘚错误尽管分频到256还是不行,十分不解检查时序代码,因为是网上现成的代码本来想不应该有问题但是还真的发现问题了,发现网仩时序先是将CSN拉高!发送结束后再拉低!这个明显不符修改后运行正常,哎网上人家给的例程未必人家就验证过,切记!
用自己做的系统板子加上网上的例程搭了下,起初的问题和在f1上的一样心想只要更改了CSN的问题就也能解决,但是问题依旧!!!十分不解反复檢查引脚连接以及SPI设置,因为都是CUBE生成的配置文件应该不会有问题啊,开启在线调试意外发现读写能正常,意识到估计需要加延迟後续的程序中CSN拉低后加了HAL_DELAY(1),程序就能正常运行了。
自己刚刚接触STM8这是我第一个做的东西,很多地方都不是很熟悉stm32用cube就能方便的生成配置,STM8也有cube但是不能生成配置。那有啥用!要手动配置时钟,端口复用等,感觉已经好不习惯了哎。调通了GPIO调通了USART,用了网上的例程配置SPI,结果读写寄存器失败也算正常吧,毕竟第一次检查引脚连接,都正确检查GPIO配置,对这块其实不是很确定因为有的例程裏面配置了SPI,就没有再配置GPIO,有的还会配置GPIO都试了还是有问题,在线调试发现寄存器返回的是0X08很奇怪,并不是0X00用万用表量了一下发现CEロ正常,但是CSN口翻转的时候高电平只能到1.36v左右好奇怪,反复检查了电路原理图以及手册,这个口也不是真开漏口不应该这样啊,无意间量了一下附近的引脚发现和附近的引脚短路了。。然后用放大镜看有很小很短的一段接上了。去除后引脚翻转正常,通讯一切正常
至此所有调试结束并成功发送接收信息,这个小东西没有想象的简单啊