STM32F103C8_Plantilla_USB Plantilla para configuración del Puerto USB y la Terminal Serial
Dependencies: mbed-STM32F103C8T6 USBDevice_STM32F103 mbed-src
main.cpp
- Committer:
- Antulius
- Date:
- 2019-06-26
- Revision:
- 0:16b83f767a7e
- Child:
- 1:e691f2e04aeb
File content as of revision 0:16b83f767a7e:
/* ########################################################################### ** Archivo : main.c ** Proyecto : STM32-F103C8_Plantilla ** Procesador : STM32F103C8 ** Herramienta : Mbed ** Version : Driver 01.01 ** Compilador : GNU C Compiler ** Fecha/Hora : 14-07-2015, 11:48, # CodeGen: 0 ** Descripción : ** Este proyecto hace... ** This module contains user's application code. ** Componentes : GPIO, Timer, etc . ** Configuraciones : Includes, Stacks y Drivers externos ** Autores : ** ATEAM Development Group: ** - Antulio Morgado Valle ** ** Versión : Beta ** Revisión : A ** Release : 0 ** Bugs & Fixes : ** Date : 20/10/2019 ** Added support for Led_RGB ** 22/09/2018 ** Added LCD Menu, Beta version (with bugs) ** ** ###########################################################################*/ /* :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: : Includes :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: */ #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" #include "Serial.h" //#include "stdio.h" /* :............................................................................... : Definiciones :............................................................................... */ #define on 0 // Estado para boton presionado #define off 1 // Estado para boton sin presionar #define hold 2 // Estado para boton mantenido #define release 3 // Estado para boton liberado #define Ticker_Rate 1000 // Periodo de interrupción (us) /* +------------------------------------------------------------------------------- | 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 PwmOut probe(PA_7); // Inicializa el PWM AnalogIn sensor1 (PB_0); // Inicializa Canal Analógico para sensor 1 /* +------------------------------------------------------------------------------- | Variables Globales de Usuario +------------------------------------------------------------------------------- */ uint16_t Rate=Ticker_Rate/2; // Velocidad de barrido (500us = 0.5ms) uint16_t counter=250; // Cuenta inicial de 250us /* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | Definición de Funciones Prototipo y Rutinas de los Vectores de Interrupción ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */ void Barrido_OnInterrupt(void); void Blinking_Led(void); /* END definitions */ /* #=============================================================================== | | P R O G R A M A P R I N C I P A L | #=============================================================================== */ int main() { // Inicialización de variables, puertos e interrupciones confSysClock(); // Inicialización del Sistema, Configure system clock (72MHz HSE clock, 48MHz USB clock) Barrido.attach_us(&Barrido_OnInterrupt, Ticker_Rate); // Le asigna el periodo de barrido de 1ms (Ticker_Rate =1000) //terminal.baud(115200); // Se configura la velocidad de transmisión e inicia la comunicación serial. //terminal.printf(" System is Wake Up!.\n\r"); while (true) // El Lazo del Programa principal está aquí !!! { // Blinking_Led(); // Parapadeo del LED por Software probe = sensor1.read(); terminal.printf("Blink \r\n"); } } /* END main */ /* ................................................................................ : Rutinas de los Vectores de Interrupción ................................................................................ */ void Barrido_OnInterrupt() // Rutina de Atención al Ticker { // Aquí va la Rutina de Servicio ! counter--; if (!counter) { terminal.printf("Counter Finish! \r\n"); led_monitor = !led_monitor; // Parapadeo del LED por Interrupción (Toggle the LED) counter = Rate; // Restablece el contador } } /* END Events */ /* ________________________________________________________________________________ | | Funciones Prototipo |_______________________________________________________________________________ */ // Las Funciones Prototipo van aquí ! void Blinking_Led() // Software Blinking routine for LED { // The on-board LED is connected, via a resistor, to +3.3V (not to GND). // So to turn the LED on or off we have to set it to 0 or 1 respectively led_monitor = 0; // turn the LED on wait_ms(200); // 200 millisecond led_monitor = 1; // turn the LED off wait_ms(1000); // 1000 millisecond } /* END functions */ /* END program */ /* END Mbed */