Files
@ 75e9d12deff7
Branch filter:
Location: protofusion-esp32-template/main/usb_cdc.c - annotation
75e9d12deff7
2.5 KiB
text/plain
Move wifi and cdc to new files
75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 75e9d12deff7 | //
// usb-cdc
//
#include "usb_cdc.h"
#include "tinyusb.h"
#include "tusb_cdc_acm.h"
#include "sdkconfig.h"
#include "esp_log.h"
// Private variables
static const char *TAG = "main";
// ------------------------ USB CDC ----------------------------------------
static uint8_t buf[CONFIG_TINYUSB_CDC_RX_BUFSIZE + 1];
void tinyusb_cdc_rx_callback(int itf, cdcacm_event_t *event)
{
/* initialization */
size_t rx_size = 0;
/* read */
esp_err_t ret = tinyusb_cdcacm_read(itf, buf, CONFIG_TINYUSB_CDC_RX_BUFSIZE, &rx_size);
if (ret == ESP_OK) {
ESP_LOGI(TAG, "Data from channel %d:", itf);
ESP_LOG_BUFFER_HEXDUMP(TAG, buf, rx_size, ESP_LOG_INFO);
} else {
ESP_LOGE(TAG, "Read error");
}
/* write back */
tinyusb_cdcacm_write_queue(itf, buf, rx_size);
tinyusb_cdcacm_write_flush(itf, 0);
}
void tinyusb_cdc_line_state_changed_callback(int itf, cdcacm_event_t *event)
{
int dtr = event->line_state_changed_data.dtr;
int rts = event->line_state_changed_data.rts;
ESP_LOGI(TAG, "Line state changed on channel %d: DTR:%d, RTS:%d", itf, dtr, rts);
}
void usb_cdc_init(void)
{
ESP_LOGI(TAG, "USB initialization");
const tinyusb_config_t tusb_cfg = {
.device_descriptor = NULL,
.string_descriptor = NULL,
.external_phy = false,
.configuration_descriptor = NULL,
};
ESP_ERROR_CHECK(tinyusb_driver_install(&tusb_cfg));
tinyusb_config_cdcacm_t acm_cfg = {
.usb_dev = TINYUSB_USBDEV_0,
.cdc_port = TINYUSB_CDC_ACM_0,
.rx_unread_buf_sz = 64,
.callback_rx = &tinyusb_cdc_rx_callback, // the first way to register a callback
.callback_rx_wanted_char = NULL,
.callback_line_state_changed = NULL,
.callback_line_coding_changed = NULL
};
ESP_ERROR_CHECK(tusb_cdc_acm_init(&acm_cfg));
/* the second way to register a callback */
ESP_ERROR_CHECK(tinyusb_cdcacm_register_callback(
TINYUSB_CDC_ACM_0,
CDC_EVENT_LINE_STATE_CHANGED,
&tinyusb_cdc_line_state_changed_callback));
#if (CONFIG_TINYUSB_CDC_COUNT > 1)
acm_cfg.cdc_port = TINYUSB_CDC_ACM_1;
ESP_ERROR_CHECK(tusb_cdc_acm_init(&acm_cfg));
ESP_ERROR_CHECK(tinyusb_cdcacm_register_callback(
TINYUSB_CDC_ACM_1,
CDC_EVENT_LINE_STATE_CHANGED,
&tinyusb_cdc_line_state_changed_callback));
#endif
ESP_LOGI(TAG, "USB initialization DONE");
}
|