求助 串口转发数据时有时无

2019-10-15 23:47发布

void USART2_IRQHandler(void)
{          
        if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET)//接收到数据
        {         

                USART_SendData(USART1, USART_ReceiveData(USART2) );        //Debug 有时候会出现不输出数据的现象
               
                USART2_RX_BUF[USART2_REC_num] = USART_ReceiveData(USART2);  //接收字符存入 BUF
                USART2_REC_num ++;
                if( USART2_REC_num > USART2_MAX_REC_LEN )       
                        USART2_REC_num = 0;
        }                                                                                                                            
}   
非常简单的一个 串口2接收数据转发到 串口1.
问题就出在 USART_SendData(USART1, USART_ReceiveData(USART2) );        //Debug 有时候会出现不输出数据的现象
但最奇怪的是 buf 中却有数据,也就是说 串口2接收数据是正常的.但确没有转发出来.
求解, 有检查中断优先级 串口2的优先级高于串口1
串口1 只接收数据,通过串口调试助手查看. 10次 会有 1-2次能输出.

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
16条回答
wuhuigps
1楼-- · 2019-10-16 20:17
憨厚诚实大叔 发表于 2016-11-7 10:29
楼主很主要的一个问题,在中断里面做一些鸟事情,不出问题才怪呢

void USART2_IRQHandler(void)
{          
        if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET)//接收到数据
        {         
                USART_SendData(USART1, USART_ReceiveData(USART2) );               

               
//                USART2_RX_BUF[USART2_REC_num] = USART_ReceiveData(USART2);//接收字符存入 BUF
//                USART2_REC_num ++;
//                if( USART2_REC_num > USART2_MAX_REC_LEN )        //判断写入的位置计数值大于了buf 的大小 计数值 = 0 从头写过 buf
//                        USART2_REC_num = 0;
        }                                                                                                                            
}   
问题是这一件时间他都做不好,时有时无.
憨厚诚实大叔
2楼-- · 2019-10-16 23:36
 精彩回答 2  元偷偷看……
憨厚诚实大叔
3楼-- · 2019-10-17 00:17
不对,准确说,在中断里面直接转发数据本身就是一个很大的问题,你拿什么保证数据转发能跟得上接受
小陀螺爱炒蛋
4楼-- · 2019-10-17 05:21
通信部分,建议做成异步方式,而不是同步~同步在大数量数据通信会有掉帧的可能
wuhuigps
5楼-- · 2019-10-17 06:57
小陀螺爱炒蛋 发表于 2016-11-8 13:13
通信部分,建议做成异步方式,而不是同步~同步在大数量数据通信会有掉帧的可能

非常感谢, 串口数据转发我只有在Debug的时候使用,主要是为了方便查看程序接收到了些什么.
ssssssssssss
6楼-- · 2019-10-17 09:52
楼主串口转发实现大数据量了吗?

一周热门 更多>