stm32f072_usb_custom_hid: fix task_notify issue in isr

This commit is contained in:
wangyz1997 2024-09-29 21:44:39 +08:00
parent 7f2a464bd2
commit bd1dd0e9a9

View File

@ -203,7 +203,11 @@ static void usbd_event_handler(uint8_t busid, uint8_t event)
static void usbd_hid_custom_in_callback(uint8_t busid, uint8_t ep, uint32_t nbytes)
{
xTaskNotifyGive(sender_task_handle);
BaseType_t higher_task_woken = pdFALSE;
vTaskNotifyGiveFromISR(sender_task_handle, &higher_task_woken);
portYIELD_FROM_ISR(higher_task_woken);
}
static void usbd_hid_custom_out_callback(uint8_t busid, uint8_t ep, uint32_t nbytes)
@ -221,7 +225,7 @@ static void fill_usb_descriptor_serial_number(void)
sprintf(uid_string, "%08X%08X%08X", HAL_GetUIDw0(), HAL_GetUIDw1(), HAL_GetUIDw2());
uint16_t serial_number_offset = 0;
for (uint16_t i = 0; i < sizeof(usb_descriptor) - 3; i ++) { //查找USB描述符中序列号字符描述符的偏移
if (usb_descriptor[i + 0] == '0' && usb_descriptor[i + 1] == 0x00 &&
usb_descriptor[i + 2] == '0' && usb_descriptor[i + 3] == 0x00) {
@ -229,7 +233,7 @@ static void fill_usb_descriptor_serial_number(void)
break;
}
}
if (serial_number_offset == 0) { //未找到
return;
}