中级会员
 
- 积分
- 211
- 金钱
- 211
- 注册时间
- 2016-5-16
- 在线时间
- 67 小时
|
5金钱
我用F103RCT6做了个虚拟串口,需要100K/S以上的速率,在例程上改的,如下,使用STM32不断给PC发送消息。串口助手并没有数据。[mw_shl_code=c,true]uint8_t data[32]={0};
u16 t,n;
int main(void)
{
delay_init();
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
uart_init(115200);
LED_Init();
delay_ms(1800);
USB_Port_Set(0);
delay_ms(700);
USB_Port_Set(1);
Set_USBClock();
USB_Interrupts_Config();
USB_Init();
while(1)
{
if(bDeviceState==CONFIGURED)
{
for(t=0;t<32;t++)
{
USB_USART_SendData(data[t]);
}
if(n++==4000)//工作状态提示
{
LED0=!LED0;
n=0;
}
}
}
}[/mw_shl_code]
但是我把上面while循环中的程序改为如下:
[mw_shl_code=c,true] while(1)
{
if(bDeviceState==CONFIGURED)
{
UserToPMABufferCopy( data, ENDP1_TXADDR, 32);
SetEPTxCount(ENDP1, 32);
SetEPTxValid(ENDP1);
if(n++==4000)//工作状态提示
{
LED0=!LED0;
n=0;
}
}
}[/mw_shl_code]
能收到数据,大概33K/S的样子,改为64的数组,速度大概为64K/S,好像1ms发送一帧数据?但是和我的要求还差得远,但是这种方法数组长度最多64啊。网上搜了一圈,搞了好久还是没有解决,特来求助。
|
|