亚洲春色中文字幕久久久-三上亚,91精品国产亚一区二区三区,久久久九色综合亚洲成色777,涩涩视频下载,国产午夜亚洲精品午夜鲁丝片,国产精品A一区二区三区腾讯导航,影音先锋色情AV在线看片,蜜臀国产在线视频,极品少妇高潮啪啪无码吴梦梦 ,精品人妻无码一区二区三区手机版

標題: LPC214x單片機USB(cdc)與uip移植 [打印本頁]

作者: hutians    時間: 2015-2-10 00:36
標題: LPC214x單片機USB(cdc)與uip移植
一:遇到問題
  1:usb-cdc協議移植出現 SET_LINE_CODING命令響應返回bufferover錯誤
  2: usb傳輸速率過快出現單片機死機,程序停止在 while((USBDevIntSt & CDFULL) == 0);     /* 等待DEVINTS寄存器的CDFULL位置
  3:uip移植出現下載程序運行不起來
解決問題
問題一解決添加紅色代碼
else if (bEPPflags.bits.control_state == USB_RECEIVE)
{                 /* 如果當前為接收狀態 if it is receive status */
  i = USB_ReadEndpoint(0, EP0_PACKET_SIZE,
   ControlData.dataBuffer + ControlData.wCount);    /* 從端點 0 讀取數據 read from endpoint 0 */
    if((ControlData.DeviceRequest.bRequest==SET_LINE_CODING)&&(ControlData.DeviceRequest.bmRequestType==0x21))
        {
      for(i=0;i<7;i++)
   LineCoding[ i]  = ControlData.dataBuffer[ i];
   single_transmit(0,0 );
  }
  ControlData.wCount += i;
  if( i != EP0_PACKET_SIZE || ControlData.wCount >= ControlData.wLength)
  {                                                         /* 完成接收數據  finish receiving data */
   bEPPflags.bits.setup_packet = 1;          /* 通知contorl_handler()處理SETUP包  inform control_handler() to process SETUP packet */
   bEPPflags.bits.control_state = USB_IDLE;
  }
}
   if((ControlData.DeviceRequest.bRequest==SET_LINE_CODING)&&(ControlData.DeviceRequest.bmRequestType==0x21))
   {
    bEPPflags.bits.control_state = USB_RECEIVE;
   }
else
  bEPPflags.bits.control_state = USB_IDLE;
問題二解決:
由于單片機內部總線速率在15Mhz沒有及時響應中斷出現寄存器數據別覆蓋,
//系統時鐘
#define Fosc        12000000UL        //晶振時鐘 【Hz】
#define Fcclk      (Fosc * 5)        //系統頻率,必須為Fosc的整數倍(1~32),且<=60MHZ
#define Fcco     (Fcclk * 4)       //CCO頻率,必須為Fcclk的2、4、8、16倍,范圍為156MHz~320MHz
#define Fpclk       (Fcclk / 4) * 2   //VPB時鐘頻率,提升到30Mhz  提到60Mhz rtc 寄存器無法讀取?????
#define FUSBclk   (Fosc * 4)      //48MHz
#define FUSBcco   (FUSBclk * 4)       //usb CCO頻率,必須為FUSBclk的2、4、8、16倍,范圍為156MHz~320MHz

問題三解決:   
刪除程序中調試輸出printf調用






歡迎光臨 (http://www.denmoz.com/bbs/) Powered by Discuz! X3.1