4
บั๊ก STM32 USB VCP
ฉันทำงานเกี่ยวกับโปรเจคในช่วงสองสัปดาห์ที่ผ่านมาและการดีบั๊กปัญหานี้ได้เกิดขึ้นตลอดทั้งสัปดาห์ สงสัยว่าถ้าใครสามารถช่วยฉันจะพยายามที่จะชัดเจนและชัดเจนที่สุด ฉันกำลังพยายามใช้ USB Virtual Comm Port บน MicroController ตาม STM32F302K8 (Cortex M4) ฉันใช้ STM32CubMX เพื่อสร้างรหัสที่จำเป็นในการตั้งค่าอุปกรณ์ USB Full Speed ที่ใช้คลาส CDC อุปกรณ์ของฉันปรากฏขึ้นทั้งใน Windows (Device Manager) และ Linux ฉันสามารถใช้ฟังก์ชั่น echo อย่างง่ายโดยใช้โค้ดตัวอย่าง แต่เมื่อฉันลองใช้ฟังก์ชั่นUSBD_CDC_SetTxBufferเพื่อส่งข้อมูลไปยังพีซีนี่เป็นการตั้งค่าตัวจัดการฮาร์ดฟอลต์ ฉันได้ จำกัด สิ่งนี้ลงไปตามความจริงที่ว่าฟิลด์ UsbDeviceFS.pClass (ซึ่งเป็นที่ต้องการโดย USBD_CDC_SetTxBuffer) จะไม่ถูกกำหนดค่าเริ่มต้นเนื่องจากUSBD_CDC_Init () ไม่เคยถูกเรียกใช้ในการเริ่มต้นอุปกรณ์ USB ฉันใช้การแก้ไขข้อบกพร่องหลายประการ (รวมถึงการเปลี่ยนขนาดฮีปการแก้ไขการตั้งค่าสถานะการส่งในUSBD_CDC_TransmitPacketและการเปลี่ยนขนาดของ CDC_DATA_HS_MAX_PACKET_SIZE เป็น 256 จาก 512) ในตัวอย่างโค้ดที่บันทึกไว้ในฟอรัม ST …