This is the quick start guide for the USB Host Communication Device Class Module (UHI CDC) with step-by-step instructions on how to configure and use the modules in a selection of use cases.
The use cases highlights several code fragments. The code fragments in the steps for setup can be copied into a custom initialization function, while the steps for usage can be copied into, e.g., the main application function.
Basic Use Case
In this basic use case, the "USB Host CDC (Single Class support)" module is used.
The "USB Host CDC (Multiple Classes support)" module usage is described in Advanced Use Cases.
Setup Steps
As a USB host, it follows common USB host setup steps. Refer to USB Host Basic Setup.
Usage Steps
Example Code
Content of conf_usb_host.h:
#define USB_HOST_UHI UHI_CDC
#define UHI_CDC_CHANGE(dev, b_plug) my_callback_cdc_change(dev, b_plug)
extern bool my_callback_cdc_change(
uhc_device_t* dev,
bool b_plug);
#define UHI_CDC_RX_NOTIFY() my_callback_cdc_rx_notify()
extern void my_callback_cdc_rx_notify(void);
#include "uhi_cdc.h"
Add to application C-file:
static bool my_flag_cdc_available = false;
{
if (b_plug) {
my_flag_cdc_available = true;
.bDataBits = 8,
};
} else {
my_flag_cdc_available = false;
}
}
void my_callback_cdc_rx_notify(void)
{
}
#define MESSAGE "Hello"
void my_task(void)
{
static bool startup = true;
if (!my_flag_cdc_available) {
startup = true;
return;
}
if (startup) {
startup = false;
return;
}
}
void my_task_rx(void)
{
}
}
Workflow
- Ensure that conf_usb_host.h is available and contains the following configuration which is the USB host CDC configuration:
#define USB_HOST_UHI UHI_CDC
- Note
- It defines the list of UHI supported by USB host.
#define UHI_CDC_CHANGE(dev, b_plug) my_callback_cdc_change(dev, b_plug)
extern bool my_callback_cdc_change(uhc_device_t* dev, bool b_plug);
- Note
- This callback is called when a USB device CDC is plugged or unplugged. The communication port can be opened and configured here.
#define UHI_CDC_RX_NOTIFY() my_callback_cdc_rx_notify()
extern void my_callback_cdc_rx_notify(void);
- Note
- This callback is called when a new data are received. This can be used to manage data reception through interrupt and avoid pooling.
- The CDC data access functions are described in UHI CDC API Overview.
Advanced Use Cases
For more advanced use of the UHI CDC module, see the following: