完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
RT,
void RF_2G4StatusCallBack( uint8 sta , uint8 crc, uint8 *rxBuf ) { switch( sta ) { case RX_MODE_RX_DATA: RF_Shut(); if( crc == 1 ) { //PRINT("crc errorn"); } else if( crc == 2 ) { //PRINT("match type errorn"); } else { if(l_rf_read_cb != NULL){ l_rf_read_cb(rxBuf); } } RF_Rx( NULL,0, l_package_type, 0xFF ); break; } //PRINT("STA: %xn",sta); } void rf_read_cb(uint8_t* ptData){ #ifdef DEBUG_ME /*int i = 0; PRINT("read data:"); for(i=0;i 245){ PRINT("data > 245n"); return; } /*if(queue_can_write_len(&g_bt_queue) >= ptData[1]+2){ queue_put(&g_bt_queue,ptData[1]); queue_put_buff(&g_bt_queue,ptData+2,ptData[1]);//data }else{ PRINT("queue fulln"); } tmos_set_event(l_task_id, SBP_MAIN_RF_EVT); PRINT("endn");*/ memcpy(uart_send_buff,ptData+2,ptData[1]); UART0_SendString( uart_send_buff, ptData[1]); //PRINT("en"); } 一块板子在收,并打印,一块板子在发,当发送的板子使用while(1) tx的时候,接收的板子可能出现卡死,TMOS set event后再也进不了 RF_2G4StatusCallBack ,只要把发送的板子关闭,那接收的板子立马就正常了。 如果发送的板子,发送的时候加上延时,而非while(1) tx,那么接收的板子就没事 |
|
相关推荐
1个回答
|
|
|
在接收的回调函数里,不要立刻开启接收,而是设置一个event,然后在event里面进行接收。
这个原因是 : 发送比较快,导致接收中断来的太快,你又在接收回调里面把接收打开了,而tmos状态机轮询需要一定时间。 |
|
|
|
|
只有小组成员才能发言,加入小组>>
383 浏览 0 评论
CH582M HOST发送数到设备后,提交IN一直是2A是什么问题?
887 浏览 0 评论
1485 浏览 1 评论
CH579M+RT-Thread,RTC从Sleep模式唤醒失败是什么原因?
3435 浏览 2 评论
2843 浏览 1 评论
安卓手机支持外接otg扩展坞 然后使用ch340+ch9329控制电脑吗
1835浏览 1评论
1485浏览 1评论
383浏览 0评论
CH582M HOST发送数到设备后,提交IN一直是2A是什么问题?
887浏览 0评论
485浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-14 04:35 , Processed in 0.491353 second(s), Total 43, Slave 36 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1745