aboutsummaryrefslogtreecommitdiff
path: root/examples/stm32/stm32-h107/usb_simple/usb_simple.c
diff options
context:
space:
mode:
Diffstat (limited to 'examples/stm32/stm32-h107/usb_simple/usb_simple.c')
-rw-r--r--examples/stm32/stm32-h107/usb_simple/usb_simple.c117
1 files changed, 0 insertions, 117 deletions
diff --git a/examples/stm32/stm32-h107/usb_simple/usb_simple.c b/examples/stm32/stm32-h107/usb_simple/usb_simple.c
deleted file mode 100644
index 85f67df..0000000
--- a/examples/stm32/stm32-h107/usb_simple/usb_simple.c
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * This file is part of the libopencm3 project.
- *
- * Copyright (C) 2011 Gareth McMullin <gareth@blacksphere.co.nz>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <libopencm3/stm32/rcc.h>
-#include <libopencm3/stm32/gpio.h>
-
-#include <libopencm3/usb/usbd.h>
-
-const struct usb_device_descriptor dev = {
- .bLength = USB_DT_DEVICE_SIZE,
- .bDescriptorType = USB_DT_DEVICE,
- .bcdUSB = 0x0200,
- .bDeviceClass = 0xFF,
- .bDeviceSubClass = 0,
- .bDeviceProtocol = 0,
- .bMaxPacketSize0 = 64,
- .idVendor = 0xCAFE,
- .idProduct = 0xCAFE,
- .bcdDevice = 0x0200,
- .iManufacturer = 1,
- .iProduct = 2,
- .iSerialNumber = 3,
- .bNumConfigurations = 1,
-};
-
-const struct usb_interface_descriptor iface = {
- .bLength = USB_DT_INTERFACE_SIZE,
- .bDescriptorType = USB_DT_INTERFACE,
- .bInterfaceNumber = 0,
- .bAlternateSetting = 0,
- .bNumEndpoints = 0,
- .bInterfaceClass = 0xFF,
- .bInterfaceSubClass = 0,
- .bInterfaceProtocol = 0,
- .iInterface = 0,
-};
-
-const struct usb_interface ifaces[] = {{
- .num_altsetting = 1,
- .altsetting = &iface,
-}};
-
-const struct usb_config_descriptor config = {
- .bLength = USB_DT_CONFIGURATION_SIZE,
- .bDescriptorType = USB_DT_CONFIGURATION,
- .wTotalLength = 0,
- .bNumInterfaces = 1,
- .bConfigurationValue = 1,
- .iConfiguration = 0,
- .bmAttributes = 0x80,
- .bMaxPower = 0x32,
-
- .interface = ifaces,
-};
-
-const char *usb_strings[] = {
- "x",
- "Black Sphere Technologies",
- "Simple Device",
- "1001"
-};
-
-static int simple_control_callback(struct usb_setup_data *req, u8 **buf,
- u16 *len, void (**complete)(struct usb_setup_data *req))
-{
- (void)buf;
- (void)len;
- (void)complete;
-
- if(req->bmRequestType != 0x40)
- return 0; /* Only accept vendor request */
-
- if(req->wValue & 1)
- gpio_set(GPIOC, GPIO6);
- else
- gpio_clear(GPIOC, GPIO6);
-
- return 1;
-}
-
-int main(void)
-{
- rcc_clock_setup_in_hse_8mhz_out_72mhz();
-
- rcc_peripheral_enable_clock(&RCC_APB2ENR, RCC_APB2ENR_IOPAEN);
- rcc_peripheral_enable_clock(&RCC_APB2ENR, RCC_APB2ENR_IOPCEN);
-
- /* LED output */
- gpio_set_mode(GPIOC, GPIO_MODE_OUTPUT_2_MHZ,
- GPIO_CNF_OUTPUT_PUSHPULL, GPIO6);
-
- usbd_init(&stm32f107_usb_driver, &dev, &config, usb_strings);
- usbd_register_control_callback(
- USB_REQ_TYPE_VENDOR,
- USB_REQ_TYPE_TYPE,
- simple_control_callback);
-
- while (1)
- usbd_poll();
-}
-