STM32-F103C8_Plantilla Es la plantilla base para compatibilidad con Mbed para la tarjeta "Blue Pill" basada en el STM32-F103C8T6
Dependencies: mbed
main.cpp
00001 /* ########################################################################### 00002 ** Archivo : main.c 00003 ** Proyecto : STM32-F103C8_Plantilla 00004 ** Procesador : STM32F103C8 00005 ** Herramienta : Mbed 00006 ** Version : Driver 01.01 00007 ** Compilador : GNU C Compiler 00008 ** Fecha/Hora : 14-07-2015, 11:48, # CodeGen: 0 00009 ** Descripción : 00010 ** Este proyecto hace... 00011 ** This module contains user's application code. 00012 ** Componentes : GPIO, Timer, etc . 00013 ** Configuraciones : Includes, Stacks y Drivers externos 00014 ** Autores : 00015 ** ATEAM Development Group: 00016 ** - Antulio Morgado Valle 00017 ** 00018 ** Versión : Beta 00019 ** Revisión : A 00020 ** Release : 0 00021 ** Bugs & Fixes : 00022 ** Date : 20/10/2019 00023 ** Added support for Led_RGB 00024 ** 22/09/2018 00025 ** Added LCD Menu, Beta version (with bugs) 00026 ** 00027 ** ###########################################################################*/ 00028 /* 00029 :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 00030 : Includes 00031 :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 00032 */ 00033 #include "stm32f103c8t6.h" 00034 #include "mbed.h" 00035 //#include "AnalogIn.h" 00036 //#include "Led_RGB.h" 00037 #include "Serial.h" 00038 //#include "stdio.h" 00039 00040 /* 00041 :............................................................................... 00042 : Definiciones 00043 :............................................................................... 00044 */ 00045 #define on 0 // Estado para boton presionado 00046 #define off 1 // Estado para boton sin presionar 00047 #define hold 2 // Estado para boton mantenido 00048 #define release 3 // Estado para boton liberado 00049 #define FALSE 0 // Estado FALSO 00050 #define TRUE 1 // Estado VERDADERO 00051 #define Ticker_Rate 1000 // Periodo de interrupción (us) 00052 /* 00053 +------------------------------------------------------------------------------- 00054 | Configuración de Puertos 00055 +------------------------------------------------------------------------------- 00056 */ 00057 //confSysClock(); // Configure system clock (72MHz HSE clock, 48MHz USB clock) 00058 Ticker TimerInt; // Inicializa la Interrupción por Timer 00059 DigitalOut led_monitor(LED1); // Inicializa el LED Monitor 00060 DigitalOut led_testigo(PB_1); // Inicializa el LED Testigo 00061 Serial terminal(PA_2, PA_3); // Inicializa la Comunicación Serial a la PC 00062 PwmOut servo(PA_7); // Inicializa el PWM 00063 AnalogIn sensor1 (PB_0); // Inicializa Canal Analógico para sensor 1 00064 /* 00065 +------------------------------------------------------------------------------- 00066 | Variables Globales de Usuario 00067 +------------------------------------------------------------------------------- 00068 */ 00069 uint16_t Rate=Ticker_Rate/2; // Velocidad de barrido (500us = 0.5ms) 00070 uint16_t counter=250; // Cuenta inicial de 250us 00071 /* END variables */ 00072 00073 /* 00074 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 00075 | Definición de Funciones Prototipo y Rutinas de los Vectores de Interrupción 00076 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 00077 */ 00078 // Las Definiciones de Funciones Prototipo 00079 // y Apuntadores a Vectores de Interrupciones van aquí ! 00080 void TimerInt_OnInterrupt(void); 00081 void Blinking_Led(void); 00082 /* END prototypes */ 00083 00084 /* END definitions */ 00085 /* 00086 #=============================================================================== 00087 | 00088 | P R O G R A M A P R I N C I P A L 00089 | 00090 #=============================================================================== 00091 */ 00092 int main() 00093 { // Inicialización de variables, puertos e interrupciones 00094 confSysClock(); // Inicialización del Sistema, Configure system clock (72MHz HSE clock, 48MHz USB clock) 00095 TimerInt.attach_us(&TimerInt_OnInterrupt, Ticker_Rate); // Le asigna el periodo de interrupción de 1ms (Ticker_Rate=1000) 00096 00097 terminal.baud(115200); // Se configura la velocidad de transmisión e inicia la comunicación serial. 00098 terminal.printf(" System is Wake Up!.\n\r"); 00099 00100 while (true) // El Lazo del Programa principal está aquí !!! 00101 { 00102 Blinking_Led(); // Parapadeo del LED por Software 00103 servo = sensor1.read(); // 00104 terminal.printf("Blink \r\n"); 00105 } 00106 } 00107 /* END main */ 00108 00109 /* 00110 ................................................................................ 00111 : Rutinas de los Vectores de Interrupción 00112 ................................................................................ 00113 */ 00114 // Las Rutinas de Atención a Interrupciones van aquí ! 00115 void TimerInt_OnInterrupt() // Rutina de Atención al Ticker 00116 { 00117 counter--; // Aquí va la Rutina de Servicio ! 00118 if (!counter) 00119 { 00120 terminal.printf("Counter Finish! \r\n"); 00121 led_monitor = !led_monitor; // Parapadeo del LED por Interrupción (LED Toggled) 00122 counter = Rate; // Restablece el contador, Le asigna el periodo de 0.5ms (Rate=500) 00123 } 00124 } 00125 /* END Events */ 00126 /* 00127 ________________________________________________________________________________ 00128 | 00129 | Funciones Prototipo 00130 |_______________________________________________________________________________ 00131 */ 00132 // Las Funciones Prototipo van aquí ! 00133 void Blinking_Led() // Software Blinking routine for LED 00134 { 00135 // The on-board LED is connected, via a resistor, to +3.3V (not to GND). 00136 // So to turn the LED on or off we have to set it to 0 or 1 respectively 00137 led_testigo = 1; // turn the LED on (using Positive Logic) 00138 wait_ms(200); // 200 millisecond 00139 led_testigo = 0; // turn the LED off (using Positive Logic) 00140 wait_ms(1000); // 1000 millisecond 00141 } 00142 /* END functions */ 00143 00144 /* END program */ 00145 00146 /*+----------------------------------------------------------------------------- 00147 *+ La documentación va aquí!: 00148 *+----------------------------------------------------------------------------- 00149 *+ Conexión al Led Testigo: 00150 *+ 00151 *+ Los leds se pueden conectar a cualquier pin que se declare como DigitalOut. 00152 *+ El dispositivo puede drenar hasta 20ma por todas sus salidas a un voltaje de 00153 *+ 3.3V, pero se recomienda no exceder de 1mA por salida. 00154 *+ Esto se logra poniendo una resistencia limitadora de mínimo 330 Ohms. 00155 *+ 00156 *+ 3.3V o 5V 00157 *+ O 00158 *+ | 00159 *+ | 00160 *+ / 00161 *+ \ 1K 00162 *+ / 00163 *+ \ UTILIZANDO LÓGICA NEGATIVA 00164 *+ | 00165 *+ ___|___ 00166 *+ \ / 00167 *+ \ / 00168 *+ \ / 00169 *+ __\/__ 00170 *+ | 00171 *+ |__________________________ PIN (Digital Out) 00172 *+ 00173 *+ 00174 *+ 00175 *+ 00176 *+ 1K 00177 *+ 00178 *+ _________/\ /\ /\ _____ PIN (Digital Out) 00179 *+ | \/ \/ \/ 00180 *+ | 00181 *+ | 00182 *+ ___|___ 00183 *+ \ / 00184 *+ \ / 00185 *+ \ / UTILIZANDO LÓGICA POSITIVA 00186 *+ __\/__ 00187 *+ | 00188 *+ | 00189 *+ | 00190 *+ ___|___ 00191 *+ _____ 00192 *+ ___ 00193 *+ _ 00194 *+ 00195 *+ GND 00196 *+ 00197 *+----------------------------------------------------------------------------* 00198 *+ 00199 *+ Powered by 00200 *+ 00201 *+ T H E A N T U L I U ' S T E A M R&D Unltd 00202 *+ 00203 *+ Research, Development, Systems, Equipment, Support & Spare Parts. 00204 *+ (C) Copyright 1989-2019, All Rights Reserved 00205 *+ 00206 *+ Welcome to The Beaners Proyect Community! 00207 *+----------------------------------------------------------------------------*/ 00208 00209 /* END documentation */ 00210 00211 /* END Mbed */
Generated on Tue Jul 12 2022 18:27:51 by 1.7.2