Comments (1)
I think I have a workable solution. I removed any data activities from the "usbd_evt_eptx" Endpoint Event callback (what you called hid_mouse_move() in the demo and what I call hid_endpoint_eventCb() ). In it's place I just set a flag that tells the application when it is safe to write more data to the HID IN Endpoint.
So now the callback looks like:
static void hid_endpoint_event_Cb(usbd_device *dev, uint8_t event, uint8_t ep)
{
switch(event)
{
case usbd_evt_sof: // Not supported by core at this time.
break;
case usbd_evt_eptx: // Data packet transmit complete.
if(ep == IN_EP1) // In my case HID is on EP1 IN (there is no CDC)
{
if(bLoadEp1 == 0)
bLoadEp1 = 1; // Tell main code that we are ready for more.
}
break;
default:
break;
}
}
And in the main code:
if(bLoadEp1)
{
bLoadEp1 = 0; // Note that it has been sent.
usbd_ep_write(&udev, HID_RPT_EP, &hid_report_data, EP1_PACKET_SIZE);
}
Note that this section in the main code only runs if there is actual data to send. This way the Endpoint is NAKing any time there is nothing to send to the host.
from libusb_stm32.
Related Issues (20)
- STM32F411: Sending corrupted data HOT 18
- Thoughts on unimplemented USB_STD_SET_FEATURE & USB_STD_CLEAR_FEATURE for Device? HOT 7
- STM32L151C8 pma_write and pma_read BUG? HOT 7
- USB Compliance test failed (Chapter9) HOT 6
- Howto use this lib in a real project? HOT 3
- Greetings HOT 1
- cdc_loop example at high speed HOT 3
- Mass storage? HOT 1
- Add STM32 U5 Support HOT 2
- Add common usb_conf.h HOT 1
- Missing STM32F103x8
- Host?
- Missing vendor request demo
- with pedantic, this two places wont compile HOT 2
- STM32F411 port can't send more than 64 bytes HOT 8
- Clock setup in cdc_init_rcc() for STM32F411 is incorrect HOT 1
- STM32L476RG assert failed: endpoint busy HOT 1
- Get data for USB HID Keyboard's LED via Class Request 0x09 (Set Report)? HOT 3
- Warning in usbd_stm32f103_devfs.c HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from libusb_stm32.