完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我最近在调个NRF24L01其实早已经调试好了,之前都是一个发送一个接,我现在想改成,我发送端发送成功后,接收端能返回信息回来。我调试时发现在把发送函数放到“if”里面发送不成功.把"if"去了发送就成功.现在不知道是什么问题!
就是 int main(void) { CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);//内部时钟16M SPI_init(); NRF24L01_Init(); NRF24L01_TX_Mode();//接收模式 __enable_interrupt(); //打开中断 while (1) { Delay_ms(200); NRF24L01_TX(data); } } 我这样子发送成功!! 改成下面那样就一直发送失败。 u8 tepm=0; int main(void) { CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);//内部时钟16M SPI_init(); NRF24L01_Init(); NRF24L01_TX_Mode();//接收模式 __enable_interrupt(); //打开中断 while (1) { Delay_ms(200); if ( temp == 0 ) //加了这个 NRF24L01_TX(data); } } 这样就发送不成功。 |
|
相关推荐
1个回答
|
|
1. 条件判断错误:请检查if语句中的条件判断是否正确。如果条件判断错误,可能导致发送函数永远不会被执行。 2. 条件变量未初始化:如果if语句中的条件变量未正确初始化,可能导致程序进入一个错误的状态,从而影响发送函数的执行。 3. 中断冲突:由于您提到使用了中断,如果发送函数被放置在if语句中,可能导致中断处理过程中的逻辑冲突,从而影响发送操作。 4. 代码结构问题:将发送函数放置在if语句中可能会导致代码结构的问题,从而影响程序的执行流程。 为了解决这个问题,您可以尝试以下方法: 1. 检查if语句中的条件判断和条件变量,确保它们是正确的。 2. 将发送函数从if语句中移出,尝试使用其他控制结构(如switch或goto)来实现您的需求。 3. 确保中断处理逻辑正确,避免在发送过程中产生冲突。 4. 检查NRF24L01的配置和初始化过程,确保它们正确无误。 5. 使用调试工具(如printf或Serial.println)来跟踪程序的执行流程,以便找到问题所在。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1683 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1582 浏览 1 评论
1013 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
703 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1627 浏览 2 评论
1892浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
675浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
538浏览 3评论
558浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
526浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-4 02:12 , Processed in 0.561436 second(s), Total 48, Slave 41 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号