Skip to content

Commit

Permalink
ADD: cdc port configuration
Browse files Browse the repository at this point in the history
  • Loading branch information
r2axz committed Nov 17, 2020
1 parent fa678d5 commit 8a61a83
Show file tree
Hide file tree
Showing 3 changed files with 60 additions and 30 deletions.
59 changes: 59 additions & 0 deletions cdc_config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
#ifndef CDC_CONFIG_H
#define CDC_CONFIG_H

#include <stm32f1xx.h>
#include "usb_cdc.h"

typedef enum {
usb_cdc_port_dir_input = 0x00,
usb_cdc_port_dir_output = 0x00,
} __attribute__ ((packed)) usb_cdc_port_dir_t;

typedef enum {
usb_cdc_output_oc = 0x00,
usb_cdc_output_pp = 0x01,
usb_cdc_output_last
} __attribute__ ((packed)) usb_cdc_output_t;

typedef enum {
usb_cdc_polarity_high = 0x00,
usb_cdc_polarity_low = 0x01,
usb_cdc_polarity_last
} __attribute__ ((packed)) usb_cdc_polarity_t;

typedef enum {
usb_cdc_pull_floating = 0x00,
usb_cdc_pull_up = 0x01,
usb_cdc_pull_down = 0x02,
usb_cdc_pull_last
} __attribute__ ((packed)) usb_cdc_pull_type_t;

typedef struct {
GPIO_TypeDef *port;
uint8_t pin;
usb_cdc_port_dir_t direction;
usb_cdc_output_t output_type;
usb_cdc_polarity_t polarity;
usb_cdc_pull_type_t pull;
} __attribute__ ((packed)) cdc_port_signal_t;

typedef enum {
usb_cdc_signal_rx = 0x00,
usb_cdc_signal_tx = 0x01,
usb_cdc_signal_rts = 0x02,
usb_cdc_signal_cts = 0x03,
usb_cdc_signal_dsr = 0x04,
usb_cdc_signal_dtr = 0x05,
usb_cdc_signal_dcd = 0x06,
usb_cdc_signal_last,
} __attribute__ ((packed)) usb_cdc_signal_t;

typedef struct {
usb_cdc_signal_t signal_configurations[usb_cdc_signal_last];
} __attribute__ ((packed)) usb_cdc_port_config_t;

typedef struct {
usb_cdc_port_config_t port_configurations[USB_CDC_NUM_PORTS];
} __attribute__ ((packed)) usb_cdc_config_t;

#endif /* CDC_CONFIG_H */
1 change: 1 addition & 0 deletions cdc_shell.c
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
#include <stdlib.h>
#include "usb_cdc.h"
#include "cdc_shell.h"
#include "cdc_config.h"

static const char *cdc_shell_banner = "\r\n\r\n"
"*******************************\r\n"
Expand Down
30 changes: 0 additions & 30 deletions usb_cdc.h
Original file line number Diff line number Diff line change
Expand Up @@ -173,34 +173,4 @@ void usb_cdc_frame();
#define USB_CDC_CRTL_LINES_POLLING_INTERVAL 20 /* ms */
#define USB_CDC_CONFIG_PORT 0

typedef enum {
usb_cdc_signal_rx = 0x00,
usb_cdc_signal_tx = 0x01,
usb_cdc_signal_rts = 0x02,
usb_cdc_signal_cts = 0x03,
usb_cdc_signal_dsr = 0x04,
usb_cdc_signal_dtr = 0x05,
usb_cdc_signal_dcd = 0x06,
usb_cdc_signal_last,
} __attribute__ ((packed)) usb_cdc_signal_t;

typedef enum {
usb_cdc_output_oc = 0x00,
usb_cdc_output_pp = 0x01,
usb_cdc_output_last
} __attribute__ ((packed)) usb_cdc_output_t;

typedef enum {
usb_cdc_polarity_high = 0x00,
usb_cdc_polarity_low = 0x01,
usb_cdc_polarity_last
} __attribute__ ((packed)) usb_cdc_polarity_t;

typedef enum {
usb_cdc_pull_floating = 0x00,
usb_cdc_pull_up = 0x01,
usb_cdc_pull_down = 0x02,
usb_cdc_pull_last
} __attribute__ ((packed)) usb_cdc_pull_type_t;

#endif /* USB_CDC_H */

0 comments on commit 8a61a83

Please sign in to comment.