一、问题:
最近要使用NRF24L01,因为看见正点原子有现成的代码,就直接进行拿来主义,结果在使用过程中,遇到了一个问题:使用函数NRF24L01_Check()函数进行检测模块是否是好的。进入调试时,点击全速运行,写入NRF24L01的buf[]={0xA5,0xA5,0xA5,0xA5,0xA5},但是从NRF24L01中读取,却是buf[]={0xE7,0xE7,0xE7,0xE7,0xE7},然后进入HardFault_Handler()。但是单步调试时,却是好的,不会读取到0xE7,正确的读到了5个0xA5,这让我百思不得其解。
二、解决办法:
后来,我 在NRF24L01_Check()前面加入了1s的延迟 ,全速运行也能正常读取数据了。
三、疑问:
为什么在NRF24L01_Check()前面加入了1s的延迟 就能正常运行了?不太懂其中的原理。