Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Revision 0:d09d48e54bdd, committed 2019-10-25
- Comitter:
- Antulius
- Date:
- Fri Oct 25 21:47:07 2019 +0000
- Commit message:
- i2c
Changed in this revision
diff -r 000000000000 -r d09d48e54bdd PinNames.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/PinNames.h Fri Oct 25 21:47:07 2019 +0000
@@ -0,0 +1,201 @@
+/* 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
+
+//UART to AMB8826
+#define TXD1 PA_9
+#define RXD1 PA_10
+#define CTS1 PA_11
+int baudRate = 115200;
+
+//UART to Silicon Labs CP210x
+#define TXD2 PA_2
+#define RXD2 PA_3
+
+//UART to FTDI
+#define TXD3 PB_10
+#define RXD3 PB_11
+
+//I2C
+#define I2C1_SCL PB_6
+#define I2C1_SDA PB_7
+
+#define I2C2_SCL PB_10
+#define I2C2_SDA PB_11
+
+//SPI
+#define SPI1_MOSI PA_7
+#define SPI1_MISO PA_6
+#define SPI1_SCLK PA_5
+#define SPI1_NSS1 PA_4
+#define SDsel PA_4
+
+#define SPI2_MOSI PB_15
+#define SPI2_MISO PB_14
+#define SPI2_SCLK PB_13
+#define SPI2_NSS2 PB_12
+
+//CAN
+#define CAN1_RX PA_11
+#define CAN1_TX PA_12
+
+//USB CDC
+#define USB_POS PA_12
+#define USB_NEG PA_11
+
+//ADC
+#define Uin PA_1
+#define Ubatt PA_0
+
+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_12,
+ USBRX = PA_11,
+ CANRX = PB_8,
+ CANTX = PB_9,
+ I2C_SCL = PB_6,
+ I2C_SDA = PB_7,
+ SPI_MOSI = PA_7,
+ SPI_MISO = PA_6,
+ SPI_SCK = PA_5,
+ SPI_CS = PA_4,
+ TRACE_SWO = PB_3,
+ SWO = PB_3
+} PinName;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff -r 000000000000 -r d09d48e54bdd SysClockConf.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SysClockConf.cpp Fri Oct 25 21:47:07 2019 +0000
@@ -0,0 +1,56 @@
+/*
+ ******************************************************************************
+ * @file SysClockConf.c
+ * @version
+ * @date 05-July-2016
+ * @brief System Clock configuration for STM32F103C8T6
+ *****************************************************************************
+ *
+ * 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
diff -r 000000000000 -r d09d48e54bdd SysClockConf.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/SysClockConf.h Fri Oct 25 21:47:07 2019 +0000 @@ -0,0 +1,2 @@ +#pragma once +void confSysClock(void); \ No newline at end of file
diff -r 000000000000 -r d09d48e54bdd TextLCD.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/TextLCD.lib Fri Oct 25 21:47:07 2019 +0000 @@ -0,0 +1,1 @@ +https://os.mbed.com/teams/IPN-ESIME-ZACATENCO/code/TextLCD/#844090a5557e
diff -r 000000000000 -r d09d48e54bdd main.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp Fri Oct 25 21:47:07 2019 +0000
@@ -0,0 +1,247 @@
+/* #############################################################################
+** Archivo : main.c
+** Proyecto : STM32-F103C8_I2C_Scanner
+** Procesador : STM32F103C8T6
+** Plataforma : Blue Pill
+** Herramienta : Mbed Compiler
+** Version : Driver 01.01
+** Compilador : GNU C Compiler
+** Fecha/Hora : 14-07-2015, 11:48, # CodeGen: 0
+** Descripción :
+** Esta utileria inspecciona el bus I2C y enumera los dispositivos
+** conectados. Proporciona su dirección base (en DEC y HEX).
+** Componentes : I2C, Serial and Digital Output.
+** Configuraciones : Includes, Stacks y Drivers externos
+** Autores :
+** ATEAM Development Group:
+** - Antulio Morgado Valle
+**
+** Versión : Beta
+** Revisión : A
+** Release : 0
+** Date : 20/10/2019
+** Bugs & Fixes :
+**
+** Permission is hereby granted, free of charge, to any person obtaining a copy
+** of this software and associated documentation files (the "Software"), to deal
+** in the Software without restriction, including without limitation the rights
+** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+** copies of the Software, and to permit persons to whom the Software is
+** furnished to do so, subject to the following conditions:
+**
+** The above copyright notice and this permission notice shall be included in
+** all copies or substantial portions of the Software.
+**
+** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+** OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+** THE SOFTWARE.
+** ###########################################################################*/
+/*
+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+: Includes
+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+*/
+#include "stm32f103c8t6.h"
+#include "mbed.h"
+#include "I2C.h"
+#include "Serial.h"
+
+/*
+:...............................................................................
+: Definiciones
+:...............................................................................
+*/
+#define Buzz_Off 0 // Estado del Buzzer Apagado
+#define Buzz_On 1 // Estado del Buzzer Encendido
+/*
++-------------------------------------------------------------------------------
+| Configuración de Puertos
++-------------------------------------------------------------------------------
+*/
+DigitalOut led_monitor(Green_Led); // Inicializa el LED Monitor
+DigitalOut buzzer (PB_1); // Inicializa el Buzzer Piezo Eléctrico
+//Serial terminal(PA_2, PA_3); // Inicializa la Comunicación Serial a la PC
+
+/*
+** -------------------------------------------------------------------
+** Inicialización de los Pines de Funciones Especiales.
+** -------------------------------------------------------------------
+*/
+/*************************************************
+* Initialize the library with the numbers of the interface pins
+* Board STM32F103C8
+* IDE Mbed On Line Compiler
+* LCD I2C PCF8574A
+* Pin Board LCD
+* I2C_SCL SCL (white) + resistance pull-up 4.7k
+* I2C_SDA SDA (blue) + resistance pull-up 4.7k
+* 5V 5V (red)
+* GND GND (black)
+***************************************************/
+//LiquidCrystal_I2C lcd(0x7E, LCDCOLUMNAS, LCDFILAS);
+//i2c_LCD lcd(0x7E, LCDCOLUMNAS, LCDFILAS);
+
+/**************************************************/
+// Host PC Communication channels
+//Serial terminal(USBTX, USBRX); // Tx, Rx
+//Serial terminal(PA_9, PA_10); // Tx, Rx Using MAX3232 or BlueTooth
+Serial terminal(PA_2,PA_3); // Tx, Rx Terminal Serial (TTL Level)
+
+// Bluetooth Communication support
+//Serial bluetooth(PA_2, PA_3); // Tx, Rx
+
+// I2C Communication
+I2C i2c_wire(PB_7,PB_6); // SDA, SCL
+//I2C i2c_wire(PB_9,PB_8); // SDA, SCL
+//I2C i2c_wire(I2C_SDA,I2C_SCL); // SDA, SCL
+//I2C i2c_wire(PB_11,PB_10); // SDA, SCL (Alternativo)
+
+/*
++-------------------------------------------------------------------------------
+| Variables Globales de Usuario
++-------------------------------------------------------------------------------
+*/
+ // Las variables globales del usuario van aquí !
+/*
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+| Definición de Funciones Prototipo y Rutinas de los Vectores de Interrupción
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+*/
+void I2C_Scanner(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)
+ terminal.baud(115200); // Se configura la velocidad de transmisión e inicia la comunicación serial.
+ terminal.printf(" System is Wake Up!.\n\r");
+
+/* Prueba del Buzzer */
+ terminal.printf("Testing Buzzer... \n\r");
+ buzzer = Buzz_On;
+ wait_ms(750);
+ buzzer = Buzz_Off;
+ wait_ms(125);
+ buzzer = Buzz_On;
+ wait_ms(250);
+ buzzer = Buzz_Off;
+ wait_ms(125);
+ buzzer = Buzz_On;
+ wait_ms(500);
+ buzzer = Buzz_Off;
+
+ while (true) // El Lazo del Programa principal está aquí !!!
+ {
+ I2C_Scanner();
+ terminal.printf ("\n\rVolver a Diagnosticar?\n\r");
+ getchar();
+ }
+}
+/* END Main */
+
+/*
+................................................................................
+: Rutinas de los Vectores de Interrupción
+................................................................................
+*/
+ // Los Servicios a Interrupciones van aquí !
+/* END Events */
+/*
+________________________________________________________________________________
+|
+| Funciones Prototipo
+|_______________________________________________________________________________
+*/
+ // Las Funciones Prototipo van aquí !
+void I2C_Scanner()
+{
+ terminal.printf ("I2C scanner. Scanning ...");
+ uint8_t count = 0;
+// char test[] = {0x55,0xAA,0x0F,0xF0,0xFF,0x00}; // Patrón de Prueba
+
+ char test[] = { 0b00000000, 0b00000000, // Datos en DB7=DB6=DB5=DB4=0, LED+=0, EN=0,RW=0,RS=0 // Patrón de Prueba LCD (LSN first)
+ 0b00111110, 0b00111010, // Datos en DB5=DB4=1, LED+=1, EN=1,0,RW=1,RS=0
+ 0b00111110, 0b00111010, // Datos en DB5=DB4=1, LED+=1, EN=1,0,RW=1,RS=0
+ 0b00111110, 0b00111010, // Datos en DB5=DB4=1, LED+=1, EN=1,0,RW=1,RS=0
+ 0b00101110, 0b00100010, // Datos en DB5=1, LED+=1, EN=1,0,RW=1,RS=0
+ 0b00101110, 0b00100010, // => Function Set Control: DB5=1, LED+=1, EN=1,0,RW=1,RS=0
+ 0b10001110, 0b10001110, // => Function Set Control: DB7=N=1 2 líneas, DB6=F=0 5x7puntos, LED+=1, EN=1,0,RW=1,RS=0
+ 0b00001110, 0b00000010, // => Display ON/OFF Control: DB7=DB6=DB5=DB4=0, LED+=1, EN=1,0,RW=1,RS=0
+ 0b00101110, 0b00100010, // => Display ON/OFF Control: DB7=1 (Display off, cursor off, blink off),LED+=1, EN=1,0,RW=1,RS=0
+ 0b00001110, 0b00000010, // => Display Clear: DB7=DB6=DB5=DB4=0, LED+=1, EN=1,0,RW=1,RS=0
+ 0b00011110, 0b00010010, // => Display Clear: D4=1, LED+=1, EN=1,0,RW=1,RS=0
+ 0b00001110, 0b00000010, // => Cursor Home: DB7=DB6=DB5=DB4=0, LED+=1, EN=1,0,RW=1,RS=0
+ 0b00101110, 0b00100010, // => Cursor Home: DB5=1, LED+=1, EN=1,0,RW=1,RS=0 , (Cursor Home};
+ 0b01001111, 0b00001011, // => Text 0x48: DB5=1, LED+=1, EN=1,0,RW=1,RS=1
+ 0b10001111, 0b00101011, // => Text "H" : DB7=1, LED+=1, EN=1,0,RW=1,RS=1 , (ASCII "H"}
+ 0b01101111, 0b01101011, // => Text 0x6F: DB5=1, LED+=1, EN=1,0,RW=1,RS=1
+ 0b11111111, 0b11111011, // => Text "o" : DB7=DB6=DB5=DB4=1, LED+=1, EN=1,0,RW=1,RS=1 , (ASCII "o"}
+ 0b01101111, 0b01101011, // => Text 0x6C: DB6=DB5=1, LED+=1, EN=1,0,RW=1,RS=1
+ 0b11001111, 0b11001011, // => Text "l" : DB7=DB6=1, LED+=1, EN=1,0,RW=1,RS=1 , (ASCII "l"}
+ 0b01101111, 0b01101011, // => Text 0x61: DB6=DB5=1, LED+=1, EN=1,0,RW=1,RS=1
+ 0b00011111, 0b00011011, // => Text "a" : DB4=1, LED+=1, EN=1,0,RW=1,RS=1 , (ASCII "a"}
+ 0b00101111, 0b00101011, // => Text 0x21: DB5=1, LED+=1, EN=1,0,RW=1,RS=1
+ 0b00011111, 0b00011011};// => Text "!" : DB4=1, LED+=1, EN=1,0,RW=1,RS=1 , (ASCII "!"}
+/*
+ char test[] = { 0b00000000, 0b00000000, // RS=0,RW=1, EN=0, LED+=1, DB4=DB5=DB6=DB7=0 // Patrón de Prueba para LCD (MSN first)
+ 0b01111100, 0b01011100, // RS=0,RW=1, EN=1,0, LED+=1, DB5=DB4=1 en datos,
+ 0b01111100, 0b01011100, // RS=0,RW=1, EN=1,0, LED+=1, DB5=DB4=1 en datos,
+ 0b01111100, 0b01011100, // RS=0,RW=1, EN=1,0, LED+=1, DB5=DB4=1 en datos,
+ 0b01110100, 0b01010100, // RS=0,RW=1, EN=1,0, LED+=1, DB5=1 en datos,
+ 0b01100100, 0b00100100, // => Function Set Control: RS=0, RW=1, EN=1,0, LED+=1, DB5=1 en datos,
+ 0b01100110, 0b00100001, // => Function Set Control: RS=0, RW=1, EN=1,0, LED+=1, DB7=N=1 2 líneas, DB6=F=0 5x7puntos,
+ 0b01100000, 0b00100000, // => Display ON/OFF Control: RS=0, RW=1, EN=1,0, LED+=1, DB4=DB5=DB6=DB7=0 en datos,
+ 0b01100001, 0b00100001, // => Display ON/OFF Control: RS=0, RW=1, EN=1,0, LED+=1, DB7=1 (Display off, cursor off, blink off)
+ 0b01100000, 0b00100000, // => Display Clear: RS=0, RW=1, EN=1,0, LED+=1, DB4=DB5=DB6=DB7=0 en datos
+ 0b01101000, 0b00101000, // => Display Clear: RS=0, RW=1, EN=1,0, LED+=1, DB4=1 en datos, (Clear Diplay)
+ 0b01100000, 0b00100000, // => Cursor Home: RS=0, RW=1, EN=1,0, LED+=1, DB4=DB5=DB6=DB7=0 en datos
+ 0b01101000, 0b00101000, // => Cursor Home: RS=0, RW=1, EN=1,0, LED+=1, DB5=1 en datos, (Cursor Home)
+ 0b11110100, 0b11010100, // => Text 0x48: RS=1, RW=1, EN=1,0, LED+=1, DB5=1, (ASCII "H")
+ 0b11110001, 0b11010001, // => Text "H" : RS=1, RW=1, EN=1,0, LED+=1, DB7=1
+ 0b11110110, 0b11010110, // => Text 0x6F: RS=1, RW=1, EN=1,0, LED+=1, DB5=DB6=1, (ASCII "o")
+ 0b11111111, 0b11011111, // => Text "o" : RS=1, RW=1, EN=1,0, LED+=1, DB4=DB5=DB6=DB7=1
+ 0b11110110, 0b11010110, // => Text 0x6C: RS=1, RW=1, EN=1,0, LED+=1, DB5=DB6=1, (ASCII "l")
+ 0b11110011, 0b11010011, // => Text "l" : RS=1, RW=1, EN=1,0, LED+=1, DB6=DB7=1
+ 0b11110110, 0b11010110, // => Text 0x61: RS=1, RW=1, EN=1,0, LED+=1, DB5=DB6=1, (ASCII "a")
+ 0b11111000, 0b11011000, // => Text "a" : RS=1, RW=1, EN=1,0, LED+=1, DB4=1
+ 0b11110100, 0b11010100, // => Text 0x21: RS=1, RW=1, EN=1,0, LED+=1, DB5=1, (ASCII "!")
+ 0b11111000, 0b11011000};// => Text "!" : RS=1, RW=1, EN=1,0, LED+=1, DB4=1
+*/
+ i2c_wire.frequency(100000); // Frecuencia de operación para el I2C (100KHz)
+ i2c_wire.start(); // Inicio de operación para el I2C
+ for (int i = 8; i < 128; i++)
+ {
+ uint8_t acknoledge = i2c_wire.write (i,test,46,1); //(dirección, ap_datos, N°_datos, repetición)
+ if (acknoledge == 0)
+ {
+ terminal.printf ("\n\rFound address: ");
+ terminal.printf ("%u DEC",i); // Valor de la dirección en Decimal
+ terminal.printf (" (0x%x HEX)\n\r",i); // Valor de la dirección en Hexadecimal
+// terminal.printf (" (0x%hd HEX)\n\r",i); // Valor de la dirección en Hexadecimal
+ count++;
+ wait (1); // Tal vez Innecesario?
+ } // end of good response
+ led_monitor = !led_monitor; // Parapadeo del LED
+ } // end of for loop
+ led_monitor = 1; // Apaga el LED
+ i2c_wire.stop(); // Fin de operación para el I2C
+ terminal.printf ("\n\rDone.\n\r");
+ terminal.printf ("Found %d Device(s)\n\r",count);
+} // end of setup
+
+/* END Functions */
+
+/* END Program */
+
+/* END Mbed */
\ No newline at end of file
diff -r 000000000000 -r d09d48e54bdd mbed.bld --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Fri Oct 25 21:47:07 2019 +0000 @@ -0,0 +1,1 @@ +https://os.mbed.com/users/mbed_official/code/mbed/builds/65be27845400 \ No newline at end of file
diff -r 000000000000 -r d09d48e54bdd stm32f103c8t6.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/stm32f103c8t6.h Fri Oct 25 21:47:07 2019 +0000 @@ -0,0 +1,4 @@ +#pragma once +#include "PinNames.h" +#include "SysClockConf.h" +