完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
板子用的是STM32f407 移植的原子的无线通讯例程 调试发送程序的时候debug显示程序卡在了while(NRF24L01_IRQ!=0);这句里面 程序卡在了中断里面 但是运行例程的debug里面就没有这样的问题 我除了改了引脚 其他都是复制粘贴的 怎么还会出错 求助大神
|
|
相关推荐
8个回答
|
|
我注意到个小细节 原子的板子上NRF_IRQ的引脚接了个电阻 我买的最小系统板上就没这个电阻 会不会是这个原因
|
|
|
|
还有个问题 既然IRQ是中断引脚 例程里怎么没有中断配置程序 求原子哥解答
|
|
|
|
不会是串电阻的问题。 检查其他地方吧
|
|
|
|
串电阻为了修整信号波形,避免出现振荡,自己DIY可靠性要求没有那么苛刻的话不接也可以。
楼主是只测试发送部分,但是却没有接收的板子吗?换而言之,楼主当前做的工作就是,我就让你发送,不管有没有其他器件接收? 如果是这样的话,将发送配置的函数中的“自动应答”功能关闭: 实际上只要是使这个EN_AA寄存器的bit0=0就可以失能通道0的自动应答了: 如果不这么做,根据数据手册中所写的,发送端在发送出去接收端的地址之后,会等待来自接收端的应答信号;如果超时,就会按照某个寄存器(记不清楚了)中设定的重试次数继续继续重试;如果所有重试次数都用光了,那么某个寄存器(也记不清了)就会 置位表示没有接收端设备的应答信号。由于发送一直都是不成功,所以IRQ也就不会有电平变化。 不过如果不是这样的话,有对端接收,那么问题原因就比较多,例如通道不正确,频率不正确,接收端设置与发送端设置不一样(例如上面的自动应答),接收端地址和发送端给出的地址不一致等等都会导致发送失败。 此外我也不太明白为什么楼主使用调试器反而没有这种问题。 |
|
|
|
真正的工程项目中可能是会使用这个引脚作为中断功能的,但是普通学习过程中为了避免“当前数据还没有发送完成,就来了新数据”的现象,保险起见我们会让数据全部发送完成之后再退出发送数据的函数,这样操作可以使用while()反复查询也可以使用中断,但是明显直接查询更快一些。而且原子面向的是初学者,简单的查询操作比使用中断,在中断函数中设标志位,再在发送函数中检测标志位的操作要简单的多,而且后者也略显麻烦,我想因为这个原子才没有使用中断方式吧。
此外网络上流传的很多NRF24L01的例程也都没使用中断,因为这样操作可移植性非常高,代码基本上复制粘贴后修改引脚就可以运行了;但是如果有中断部分,不同类型的单片机需要考虑不同的事情,例如基本中断的配置,像是STM32还得配置中断分组,而且他们的中断函数本身也不一样,中断优先级的设置也麻烦,不适合快速移植。 类似的操作还有发烧友的串口发送部分,本来也可以直接使用中断的,应该是相似的原因对初学者友好,使用了查询的办法。 |
|
|
|
是有一个接收端的 我尝试关闭自动应答 debug还是卡在了这里
int main(void) { u8 tmp_buf[4]={0xAA,0XAB,0XAC,0XAD}; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//ÉèÖÃϵͳÖжÏÓÅÏȼ¶·Ö×é2 delay_init(168); //³õʼ»¯ÑÓʱº¯Êý NRF24L01_Init(); //³õʼ»¯NRF24L01 NRF24L01_TX_Mode(); delay_us(10); while(NRF24L01_Check()==0) { if(NRF24L01_TxPacket(tmp_buf)==TX_OK); } } 这是我发送端的代码 if(NRF24L01_RxPacket(temp)==0) Send_Remote_Data(temp,4);这个是接收端代码 接收到的数据用串口传到电脑上 原本4个字节的数组显示的满屏的FFFF 串口传输的代码是可以正常用的 |
|
|
|
在我的最小系统上还能检测到 在开发板上直接检测都检测不到了 我真是醉了
|
|
|
|
问题有进展了 接收端那边检测不到NRF。。。
|
|
|
|
只有小组成员才能发言,加入小组>>
如何使用STM32+nrf24l01架构把有线USB设备无线化?
2544 浏览 7 评论
请问能利用51单片机和nRF24L01模块实现实时语音无线传输吗?
2331 浏览 5 评论
3158 浏览 3 评论
2803 浏览 8 评论
为什么ucosii上移植lwip后系统进入了HardFault_Handler?
2761 浏览 4 评论
请教各位大咖:有没有接收频率32M左右的芯片推荐的?先感谢啦!
608浏览 1评论
853浏览 0评论
968浏览 0评论
621浏览 0评论
447浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 11:29 , Processed in 0.944423 second(s), Total 61, Slave 54 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号