title: Writing to a USB device which shares an endpoint for in and out transactions
body: <p>looking for some help with a USB device I have which has 2 interfaces. The first interface is HID and the second is MSC. I'm developing with an STM32F415VG and am trying to set it up as a USB host. Basically, I can communicate with the USB device without any problems. I can mount FAT and can read from the device fine, but I don't seem to be able to write to it. A little bit of further digging in the descriptors has helped me find that the interface I need(MSC) uses the same endpoint address for in(0x81) and out(0x01). All other devices I've tried with my USB host seem to use different addresses (usually 0x81, 0x02). I'm starting to think this might be the issue. Has anyone else encountered anything similar or able to confirm my hypothesis? Here's a copy of my endpoint descriptors in case it helps:</p>
  
  <pre><code>Ep_Desc[0]  0x2000c230  
      Ep_Desc[0][0]   {...}   
          bLength             0x7 
          bDescriptorType     0x5 
          bEndpointAddress    0x82    
          bmAttributes        0x3 
          wMaxPacketSize      0x8 
          bInterval           0x5 
      Ep_Desc[0][1]   {...}   
          bLength             0x7 
          bDescriptorType     0x5 
          bEndpointAddress    0x2 
          bmAttributes        0x3 
          wMaxPacketSize      0x8 
          bInterval           0x5 
  
  Ep_Desc[1]  0x2000c240  
      Ep_Desc[1][0]   {...}   
          bLength             0x7 
          bDescriptorType     0x5 
          bEndpointAddress    0x81    
          bmAttributes        0x2 
          wMaxPacketSize      0x40    
          bInterval           0x0 
      Ep_Desc[1][1]   {...}   
          bLength             0x7 
          bDescriptorType     0x5 
          bEndpointAddress    0x1 
          bmAttributes        0x2 
          wMaxPacketSize      0x40    
          bInterval           0x0 
  </code></pre>