完善资料让更多小伙伴认识你,还能领取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板卡-LCD显示图片编程示例之介绍mmap
551 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第二章 常用的C语言知识点
910 浏览 0 评论
【RA-Eco-RA2E1-48PIN-V1.0开发板试用】(第三篇)ADC采集+PWM输出
575 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第四十五章 人脸识别实验
572 浏览 0 评论
1221 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11769 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-23 21:11 , Processed in 0.656843 second(s), Total 87, Slave 68 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号