STM32F103C8_Plantilla_USB Plantilla para configuración del Puerto USB y la Terminal Serial

Dependencies:   mbed-STM32F103C8T6 USBDevice_STM32F103 mbed-src

Files at this revision

API Documentation at this revision

Comitter:
Antulius
Date:
Thu Sep 05 19:48:05 2019 +0000
Parent:
0:16b83f767a7e
Commit message:
STM32F103C8T6_Plantilla_USB

Changed in this revision

PinNames.h Show diff for this revision Revisions of this file
SysClockConf.cpp Show diff for this revision Revisions of this file
SysClockConf.h Show diff for this revision Revisions of this file
USBDevice_STM32F103.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed-STM32F103C8T6.lib Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show diff for this revision Revisions of this file
mbed.lib Show annotated file Show diff for this revision Revisions of this file
mbed_app.json Show annotated file Show diff for this revision Revisions of this file
stm32f103c8t6.h Show diff for this revision Revisions of this file
--- a/PinNames.h	Wed Jun 26 18:48:46 2019 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,155 +0,0 @@
-/* mbed Microcontroller Library
- *******************************************************************************
- * Copyright (c) 2014, STMicroelectronics
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- *    this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 3. Neither the name of STMicroelectronics nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *******************************************************************************
- 
- */
-#ifndef MBED_PINNAMES_H
-#define MBED_PINNAMES_H
-
-#include "cmsis.h"
-#include "PinNamesTypes.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef enum {
-    // Not connected
-    NC = (int)0xFFFFFFFF,
-
-    // Ports
-    PA_0  = 0x00,
-    PA_1  = 0x01,
-    PA_2  = 0x02,
-    PA_3  = 0x03,
-    PA_4  = 0x04,
-    PA_5  = 0x05,
-    PA_6  = 0x06,
-    PA_7  = 0x07,
-    PA_8  = 0x08,
-    PA_9  = 0x09,
-    PA_10 = 0x0A,
-    PA_11 = 0x0B,
-    PA_12 = 0x0C,
-    PA_13 = NC,
-    PA_14 = NC,
-    PA_15 = 0x0F,
-
-    PB_0  = 0x10,
-    PB_1  = 0x11,
-    PB_2  = NC,
-    PB_3  = 0x13,
-    PB_4  = 0x14,
-    PB_5  = 0x15,
-    PB_6  = 0x16,
-    PB_7  = 0x17,
-    PB_8  = 0x18,
-    PB_9  = 0x19,
-    PB_10 = 0x1A,
-    PB_11 = 0x1B,
-    PB_12 = 0x1C,
-    PB_13 = 0x1D,
-    PB_14 = 0x1E,
-    PB_15 = 0x1F,
-
-    PC_0  = NC,
-    PC_1  = NC,
-    PC_2  = NC,
-    PC_3  = NC,
-    PC_4  = NC,
-    PC_5  = NC,
-    PC_6  = NC,
-    PC_7  = NC,
-    PC_8  = NC,
-    PC_9  = NC,
-    PC_10 = NC,
-    PC_11 = NC,
-    PC_12 = NC,
-    PC_13 = 0x2D,
-    PC_14 = 0x2E,
-    PC_15 = 0x2F,
-
-    PD_2  = NC,
-
-    // ADC internal channels
-    ADC_TEMP = 0xF0,
-    ADC_VREF = 0xF1,
-
-    // Arduino connector namings
-    A0          = PA_0,
-    A1          = PA_1,
-    A2          = PA_4,
-    A3          = PB_0,
-    A4          = NC,
-    A5          = NC,
-    D0          = PA_3,
-    D1          = PA_2,
-    D2          = PA_10,
-    D3          = PB_3,
-    D4          = PB_5,
-    D5          = PB_4,
-    D6          = PB_10,
-    D7          = PA_8,
-    D8          = PA_9,
-    D9          = NC,
-    D10         = PB_6,
-    D11         = PA_7,
-    D12         = PA_6,
-    D13         = PA_5,
-    D14         = PB_9,
-    D15         = PB_8,
-
-    // Generic signals namings
-    Red_Led     = NC,
-    Green_Led   = PC_13,
-    Blue_Led    = NC,
-    LED1        = PC_13,
-    LED2        = NC,
-    LED3        = NC,
-    LED4        = NC,
-    USER_BUTTON = NC,
-    SERIAL_TX   = PA_2,
-    SERIAL_RX   = PA_3,
-    USBTX       = PA_2,
-    USBRX       = PB_3,
-    CANRX       = PB_8,    
-    CANTX       = PB_9,
-    I2C_SCL     = PB_8,
-    I2C_SDA     = PB_9,
-    SPI_MOSI    = PA_7,
-    SPI_MISO    = PA_6,
-    SPI_SCK     = PA_5,
-    SPI_CS      = PB_6,
-    PWM_OUT     = PB_3
-} PinName;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
--- a/SysClockConf.cpp	Wed Jun 26 18:48:46 2019 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +0,0 @@
-/*
-  ******************************************************************************
-  * @file    SysClockConf.c
-  * @author  Zoltan Hudak
-  * @version 
-  * @date    05-July-2016
-  * @brief   System Clock configuration for STM32F103C8T6
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; COPYRIGHT(c) 2016 Zoltan Hudak <hudakz@outlook.com>
-  *
-  * All rights reserved.
- 
- 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 "SysClockConf.h"
-#include "mbed.h"
- 
-void HSE_SystemClock_Config(void) {
-    RCC_OscInitTypeDef        RCC_OscInitStruct;
-    RCC_ClkInitTypeDef        RCC_ClkInitStruct;
-    RCC_PeriphCLKInitTypeDef  PeriphClkInit;
- 
-    RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
-    RCC_OscInitStruct.HSEState = RCC_HSE_ON;
-    RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1;
-    RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
-    RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
-    RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL9;
-    HAL_RCC_OscConfig(&RCC_OscInitStruct);
-    RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
-    RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
-    RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
-    RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2;
-    RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
-    HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2);
-    PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_ADC|RCC_PERIPHCLK_USB;
-    PeriphClkInit.AdcClockSelection = RCC_ADCPCLK2_DIV6;
-    PeriphClkInit.UsbClockSelection = RCC_USBCLKSOURCE_PLL_DIV1_5;
-    HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit);
-}
- 
-void confSysClock(void) {
-    HAL_RCC_DeInit();
-    HSE_SystemClock_Config();
-    SystemCoreClockUpdate();
-}
- 
\ No newline at end of file
--- a/SysClockConf.h	Wed Jun 26 18:48:46 2019 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-#ifndef CONFSYSCLOCK_H
-#define CONFSYSCLOCK_H
-
-#pragma once
-void confSysClock(void);
-
-#endif
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/USBDevice_STM32F103.lib	Thu Sep 05 19:48:05 2019 +0000
@@ -0,0 +1,1 @@
+https://developer.mbed.org/users/hudakz/code/USBDevice_STM32F103/#faedf6c65e43
--- a/main.cpp	Wed Jun 26 18:48:46 2019 +0000
+++ b/main.cpp	Thu Sep 05 19:48:05 2019 +0000
@@ -1,6 +1,6 @@
 /* ###########################################################################
 **    Archivo        : main.c
-**    Proyecto       : STM32-F103C8_Plantilla
+**    Proyecto       : STM32-F103C8_Plantilla_USB
 **    Procesador     : STM32F103C8
 **    Herramienta    : Mbed
 **    Version        : Driver 01.01
@@ -30,11 +30,10 @@
 :  Includes
 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 */
+#include "stm32f103c8t6.h"
+#include "stm32f10x.h"
+#include "mbed_lib.h"
 #include "mbed.h"
-#include "stm32f103c8t6.h"
-//#include "stm32f10x.h"
-#include "PinNames.h"
-#include "SysClockConf.h"
 #include "AnalogIn.h"
 #include "Ticker.h"
 //#include "Led_RGB.h"
@@ -50,13 +49,15 @@
 #define off             1               // Estado para boton sin presionar
 #define hold            2               // Estado para boton mantenido
 #define release         3               // Estado para boton liberado
+#define FALSE           0               // Estado FALSO
+#define TRUE            1               // Estado VERDADERO
 #define Ticker_Rate     1000            // Periodo de interrupción (us)
+#define Baud_Rate       115200          // Velocidad de Transmisión (bauds)
 /*
 +-------------------------------------------------------------------------------
 |  Configuración de Puertos 
 +-------------------------------------------------------------------------------
 */
-//confSysClock();     // Configure system clock (72MHz HSE clock, 48MHz USB clock)
 Ticker      Barrido;                // Inicializa la Interrupción por Timer
 DigitalOut  led_monitor(Green_Led);      // Inicializa el LED Monitor
 Serial      terminal(PA_2, PA_3);   // Inicializa la Comunicación Serial a la PC
@@ -135,6 +136,14 @@
         led_monitor = 1;        // turn the LED off
         wait_ms(1000);          // 1000 millisecond
 }
+
+void Setup()
+{
+//  confSysClock();     // Configure system clock (72MHz HSE clock, 48MHz USB clock)
+//  terminal.baud(Baud_Rate);         // Se configura la velocidad de transmisión e inicia la comunicación serial.    
+  terminal.baud(Baud_Rate);         // Se configura la velocidad de transmisión e inicia la comunicación serial.  
+  terminal.printf(" System is Wake Up!.\n\r");
+}              
 /* END functions */    
                 
 /* END program */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed-STM32F103C8T6.lib	Thu Sep 05 19:48:05 2019 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/teams/Que-elegancia-la-de-Francia/code/mbed-STM32F103C8T6/#6b69d45b4700
--- a/mbed.bld	Wed Jun 26 18:48:46 2019 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-https://os.mbed.com/users/mbed_official/code/mbed/builds/65be27845400
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.lib	Thu Sep 05 19:48:05 2019 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/teams/Que-elegancia-la-de-Francia/code/STM32F103C8_Plantilla_USB/#53b3a37cdf68
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed_app.json	Thu Sep 05 19:48:05 2019 +0000
@@ -0,0 +1,9 @@
+{
+    "target_overrides": {
+        "NUCLEO_F103RB": {
+            "target.clock_source": "USE_PLL_HSE_XTAL",
+            "target.clock_source_usb": "1",
+            "target.default_lib": "small"
+        }
+    }
+}
--- a/stm32f103c8t6.h	Wed Jun 26 18:48:46 2019 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-#pragma  once
-
-#ifndef STM32F103C8T6_H
-#define STM32F103C8T6_H
-#include "stm32f10x.h"
-#include "PinNames.h"
-#include "SysClockConf.h"
-
-#endif
\ No newline at end of file