| 
 
| 本帖最后由 phz0008 于 2012-2-7 17:12 编辑 
 void SendRecvTimeOut(void)
 {
 
 uint8_t temp[RADAR_BUF_SIZE];
 
 uint8_t i=0;
 
 if ( UartDataReadyFlag )
 
 {
 
 UartDataReadyFlag=0;
 
 i =QueueGetDataCount(&g_RecvQueue);
 
 count_in=i;
 
 if ( count_in==UartRecvBytes(&temp[0],i))
 //如果有数据
 
 {
 /*分三步:1.想缓冲区填入数据 2.设定usb数据计数器 3.设置usb输出有效
 */
 
 UserToPMABufferCopy(temp, ENDP1_TXADDR, count_in);
 //这里导致串口波特率加快后丢数
 SetEPTxCount(ENDP1, count_in);
 //设定usb数据计数器
 SetEPTxValid(ENDP1);
 //设置usb输出有效
 
 
 //
 UartSendBytes(temp,count_in);
 
 
 }
 
 }
 }
 
 平台  stm3210b-lk1  测试目前没发现丢数。呵呵。无聊作者玩,恭请大家拍砖。
 附件里有生成的hex文件
 | 
 |