本帖最后由 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文件 |