Add uart status notif to cdc_dual_ports example.
This commit is contained in:
@@ -94,7 +94,6 @@ void tud_umount_cb(void) {
|
|||||||
blink_interval_ms = BLINK_NOT_MOUNTED;
|
blink_interval_ms = BLINK_NOT_MOUNTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
// USB CDC
|
// USB CDC
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
@@ -115,6 +114,16 @@ static void cdc_task(void) {
|
|||||||
echo_serial_port(0, buf, count);
|
echo_serial_port(0, buf, count);
|
||||||
echo_serial_port(1, buf, count);
|
echo_serial_port(1, buf, count);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Press on-board button to send Uart status notification
|
||||||
|
static uint32_t btn_prev = 0;
|
||||||
|
static cdc_uart_state_t state = {0};
|
||||||
|
uint32_t btn = board_button_read();
|
||||||
|
if (!btn_prev && btn) {
|
||||||
|
state.bTxCarrier ^= 1;
|
||||||
|
tud_cdc_send_uart_state(state);
|
||||||
|
}
|
||||||
|
btn_prev = btn;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -136,10 +136,10 @@ uint8_t const desc_fs_configuration[] =
|
|||||||
TUD_CONFIG_DESCRIPTOR(1, ITF_NUM_TOTAL, 0, CONFIG_TOTAL_LEN, 0x00, 100),
|
TUD_CONFIG_DESCRIPTOR(1, ITF_NUM_TOTAL, 0, CONFIG_TOTAL_LEN, 0x00, 100),
|
||||||
|
|
||||||
// 1st CDC: Interface number, string index, EP notification address and size, EP data address (out, in) and size.
|
// 1st CDC: Interface number, string index, EP notification address and size, EP data address (out, in) and size.
|
||||||
TUD_CDC_DESCRIPTOR(ITF_NUM_CDC_0, 4, EPNUM_CDC_0_NOTIF, 8, EPNUM_CDC_0_OUT, EPNUM_CDC_0_IN, 64),
|
TUD_CDC_DESCRIPTOR(ITF_NUM_CDC_0, 4, EPNUM_CDC_0_NOTIF, 10, EPNUM_CDC_0_OUT, EPNUM_CDC_0_IN, 64),
|
||||||
|
|
||||||
// 2nd CDC: Interface number, string index, EP notification address and size, EP data address (out, in) and size.
|
// 2nd CDC: Interface number, string index, EP notification address and size, EP data address (out, in) and size.
|
||||||
TUD_CDC_DESCRIPTOR(ITF_NUM_CDC_1, 4, EPNUM_CDC_1_NOTIF, 8, EPNUM_CDC_1_OUT, EPNUM_CDC_1_IN, 64),
|
TUD_CDC_DESCRIPTOR(ITF_NUM_CDC_1, 4, EPNUM_CDC_1_NOTIF, 10, EPNUM_CDC_1_OUT, EPNUM_CDC_1_IN, 64),
|
||||||
};
|
};
|
||||||
|
|
||||||
#if TUD_OPT_HIGH_SPEED
|
#if TUD_OPT_HIGH_SPEED
|
||||||
@@ -151,10 +151,10 @@ uint8_t const desc_hs_configuration[] =
|
|||||||
TUD_CONFIG_DESCRIPTOR(1, ITF_NUM_TOTAL, 0, CONFIG_TOTAL_LEN, 0x00, 100),
|
TUD_CONFIG_DESCRIPTOR(1, ITF_NUM_TOTAL, 0, CONFIG_TOTAL_LEN, 0x00, 100),
|
||||||
|
|
||||||
// 1st CDC: Interface number, string index, EP notification address and size, EP data address (out, in) and size.
|
// 1st CDC: Interface number, string index, EP notification address and size, EP data address (out, in) and size.
|
||||||
TUD_CDC_DESCRIPTOR(ITF_NUM_CDC_0, 4, EPNUM_CDC_0_NOTIF, 8, EPNUM_CDC_0_OUT, EPNUM_CDC_0_IN, 512),
|
TUD_CDC_DESCRIPTOR(ITF_NUM_CDC_0, 4, EPNUM_CDC_0_NOTIF, 10, EPNUM_CDC_0_OUT, EPNUM_CDC_0_IN, 512),
|
||||||
|
|
||||||
// 2nd CDC: Interface number, string index, EP notification address and size, EP data address (out, in) and size.
|
// 2nd CDC: Interface number, string index, EP notification address and size, EP data address (out, in) and size.
|
||||||
TUD_CDC_DESCRIPTOR(ITF_NUM_CDC_1, 4, EPNUM_CDC_1_NOTIF, 8, EPNUM_CDC_1_OUT, EPNUM_CDC_1_IN, 512),
|
TUD_CDC_DESCRIPTOR(ITF_NUM_CDC_1, 4, EPNUM_CDC_1_NOTIF, 10, EPNUM_CDC_1_OUT, EPNUM_CDC_1_IN, 512),
|
||||||
};
|
};
|
||||||
|
|
||||||
// device qualifier is mostly similar to device descriptor since we don't change configuration based on speed
|
// device qualifier is mostly similar to device descriptor since we don't change configuration based on speed
|
||||||
|
Reference in New Issue
Block a user