点击静音按钮出现 USTS c0000004 stall pid问题。
是因为数据没有收取,导致了数据的溢出。
int usbd_ep0_recv(uint16_t length, usbd_ep_xfer_callback_t callback)
static int uac_interface_class_request_out_handler(const usbd_interface_req_t *req)
{
// only support SetCur()
if (req->request != UAC_CLASS_REQ_SET_CUR) {
return -1;
}
const uint8_t interface = req->index & 0xff;
const uint8_t unit = req->index >> 8;
switch (get_uac_interface(interface)) {
case UAC_INTERFACE_HP_CONTROL:
if (unit != UAC_FEATURE_UNIT_ID) {
return -2;
}
m_hp_mute = req->value;
int usbd_ep0_recv(uint16_t length, usbd_ep_xfer_callback_t callback); //添加这个函数进行收取数据
return 0;case UAC_INTERFACE_MIC_CONTROL:
if (unit != UAC_FEATURE_UNIT_ID) {
return -2;
}
m_mic_mute = req->value;
return 0;
case UAC_INTERFACE_HP_DATA:
case UAC_INTERFACE_MIC_DATA:
case UAC_INTERFACE_UNKNOWN:
default:
return -1;
}
}
总结:遇到这样的问题要学会类比。同样是contrl,道理是一样的。