完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
单独的一个模块发送数据,另一个接收数据,是没有问题的。但是要是在同一个模块上先发送数据,再接收数据,返回来的数据就是错误的,已经求证过另一个模块发送过来的数据是正确的。是我在接收数据包的时候时间上有问题吗?求高手指点?这是主函数程序
int main(void) { /************************ 发送一次收一次 ***********************/ unsigned char i = 0; unsigned int checkright = 0; //接收正确标志 __disable_interrupt(); uart_init(); __enable_interrupt(); SPI_Init(); nRF905_Init(TX_ADDRESS); nRF905_Init(RX_ADDRESS); while(1) { if( rxBuf[0] == 0xaa)//串口接收一个正确数据包 { if( rxBuf[1] == 0xbb) { for(i=0;i<16;i++) SendBuffer[i] = rxBuf[i];//将接收到数据写入发送寄存器 _delay_ms(100); nRF905_SendPacket(RX_ADDRESS);//射频发送数据包 rxBuf[0] = 0x00; rxBuf[1] = 0x00; } } if(flag_send_over == 1) { nRF905_ReceivePacket(); //接收返回的数据包 if(flag_rece_over == 1)//接收完成后串口发送数据到PC机 { flag_send_over = 0; for(i=0; i txCount = ReceiveCount; beginSend(); flag_rece_over = 0; } } } } |
|
相关推荐
6个回答
|
|
自发自收作什么用?你还是用两个模块,互相同时发数据,看是什么效果
|
|
|
|
模块a告诉b我想读取数据,b将内部的数据发给a。a和b通信。但是a收到的数据和b发过来的不一致。 |
|
|
|
增加中间延时时间试试,如果单向都ok的话,那很可能就是在发送数据的时候出现占位现象,就是一个发送还没完全结束,另一个开始启动了
|
|
|
|
|
|
|
|
QQ 278137116
|
|
|
|
不知楼主的做法用意,是不是专门调试NRF905的。本人将持续关注。
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-TF卡烧录流程之烧写过程
495 浏览 0 评论
740 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-mfgtools烧录流程之烧写原理
859 浏览 0 评论
请问SPH0641LU4H这款麦克风如何在不使用I2S的情况下,单纯通过GPIO来进行驱动且正常读取数据呢
680 浏览 1 评论
466 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12092 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-1 10:54 , Processed in 0.592248 second(s), Total 82, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (威廉希尔官方网站 图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号