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.
main.cpp
- Committer:
- mvargas_dtk
- Date:
- 2022-08-29
- Revision:
- 1:67969835e6a7
- Parent:
- 0:cb19c7be20b9
- Child:
- 2:56d4eec79668
File content as of revision 1:67969835e6a7:
/* mbed Microcontroller Library
* Copyright (c) 2019 ARM Limited
* SPDX-License-Identifier: Apache-2.0
*/
#include "mbed.h"
#include "platform/mbed_thread.h"
#include <stdio.h>
#include <string.h>
#include <math.h>
#include "BufferedSerial.h"
DigitalOut led1(PB_4);
DigitalOut led2(PB_12);
DigitalOut BT_RST(PB_5);
DigitalIn button(PC_13);
DigitalOut Stby_can(PD_3);
DigitalOut reg_3v3(PC_10);
DigitalOut reg_5v(PB_10);
DigitalIn bt_state (PA_15);
DigitalIn in1 (PA_7);
DigitalIn in2 (PB_0);
DigitalIn in3 (PB_1);
DigitalIn in4 (PF_10);
DigitalIn in5 (PA_4);
DigitalIn in6 (PA_5);
DigitalIn in7 (PA_6);
DigitalIn in8 (PB_3);
//GPIO1 Puerto1
DigitalIn gpio1 (PD_6);
DigitalIn gpio2 (PD_7);
DigitalIn gpio3 (PB_11);
DigitalIn gpio4 (PF_14);
DigitalIn gpio5 (PD_15);
DigitalIn gpio6 (PE_15);
DigitalIn gpio7 (PD_12);
//GPIO1 Puerto2
DigitalIn gpio8 (PG_0);
DigitalIn gpio9 (PF_11);
DigitalIn gpio10 (PG_2);
DigitalIn gpio11 (PG_3);
DigitalIn gpio12 (PG_4);
DigitalIn gpio13 (PG_5);
DigitalIn gpio14 (PG_6);
//GPIO1 Puerto3
DigitalIn gpio15 (PE_0);
DigitalIn gpio16 (PG_8);
DigitalIn gpio17 (PE_1);
DigitalIn gpio18 (PG_10);
DigitalIn gpio19 (PG_11);
DigitalIn gpio20 (PG_12);
DigitalIn gpio21 (PE_3);
BufferedSerial RS232_2(PC_12, PE_7);
BufferedSerial RS232_1(PD_8, PD_9,1536, 1);
BufferedSerial RS485(PC_6, PC_7);
BufferedSerial BT(PA_9, PA_10,1536 ,1);
BufferedSerial TTL(PA_2, PA_3);
BufferedSerial vm(PA_0, PA_1);
DigitalOut OUT1(PB_13); //Salidas activas en bajo
DigitalOut OUT2(PB_14); //Salidas activas en bajo
DigitalOut OUT3(PB_15); //Salidas activas en bajo
DigitalOut OUT4(PC_0); //Salidas activas en bajo
//////////////////////////////////////////////////////////////////////////////
int main()
{
Stby_can = 0;
led1 = 0;
led2 = 0;
BT_RST = 1;
gpio1.mode(PullDown);
gpio2.mode(PullDown);
gpio3.mode(PullDown);
gpio4.mode(PullDown);
gpio5.mode(PullDown);
gpio6.mode(PullDown);
gpio7.mode(PullDown);
gpio8.mode(PullDown);
gpio9.mode(PullDown);
gpio10.mode(PullDown);
gpio11.mode(PullDown);
gpio12.mode(PullDown);
gpio13.mode(PullDown);
gpio14.mode(PullDown);
gpio15.mode(PullDown);
gpio16.mode(PullDown);
gpio17.mode(PullDown);
gpio18.mode(PullDown);
gpio19.mode(PullDown);
gpio20.mode(PullDown);
gpio21.mode(PullDown);
char datoUSB[1311];
char ONOUTS[] = "ONOUTS";
char OFFOUTS[] = "OFFOUTS";
char ONOUT1[] = "ONOUT1";
char ONOUT2[] = "ONOUT2";
char ONOUT3[] = "ONOUT3";
char ONOUT4[] = "ONOUT4";
char ANTO[] = "ANTO";
char ON3V3[] = "ON3V3";
char OFF3V3[] = "OFF3V3";
char RSTBT[] = "RSTBT";
char ON5V[] = "ON5V";
char OFF5V[] = "OFF5V";
char datox;
int x;
int y = 0;
int i = 0;
BT.baud(9600);
RS232_1.baud(115200);
RS232_2.baud(115200);
RS485.baud(115200);
TTL.baud(115200);
vm.baud(9600);
wait_us(1000000);
BT.printf("Inicio\n");
RS232_1.printf("Inicio\n");
RS232_2.printf("Inicio\n");
reg_3v3 = 0;
reg_5v = 0;
x = 0;
wait_us(1000000);
//////////////////////////////////////////////////////////////////////////////
while (true) {
x = 0;
led1 = !led1;
led2 = !led2;
BT.printf("Boton = %d, in1 = %d, in2 = %d , in3 = %d, in4 = %d, in5 = %d, in6 = %d, in7 = %d, in8 = %d \r\n",button.read(),in1.read(),in2.read(),in3.read(),in4.read(),
in5.read(),in6.read(),in7.read(),in8.read());
RS232_1.printf("Boton = %d, in1 = %d, in2 = %d , in3 = %d, in4 = %d, in5 = %d, in6 = %d, in7 = %d, in8 = %d \r\n",button.read(),in1.read(),in2.read(),in3.read(),in4.read(),
in5.read(),in6.read(),in7.read(),in8.read());
RS232_2.printf("Boton = %d, in1 = %d, in2 = %d , in3 = %d, in4 = %d, in5 = %d, in6 = %d, in7 = %d, in8 = %d \r\n",button.read(),in1.read(),in2.read(),in3.read(),in4.read(),
in5.read(),in6.read(),in7.read(),in8.read());
TTL.printf("Boton = %d, in1 = %d, in2 = %d , in3 = %d, in4 = %d, in5 = %d, in6 = %d, in7 = %d, in8 = %d \r\n",button.read(),in1.read(),in2.read(),in3.read(),in4.read(),
in5.read(),in6.read(),in7.read(),in8.read());
RS485.printf("Boton = %d, in1 = %d, in2 = %d , in3 = %d, in4 = %d, in5 = %d, in6 = %d, in7 = %d, in8 = %d \r\n",button.read(),in1.read(),in2.read(),in3.read(),in4.read(),
in5.read(),in6.read(),in7.read(),in8.read());
BT.printf("GPIOP1: %d%d%d%d%d%d%d, GPIOP2: %d%d%d%d%d%d%d, GPIOP3: %d%d%d%d%d%d%d\r\n",gpio7.read(),gpio6.read(),gpio5.read(),gpio4.read(),
gpio3.read(),gpio2.read(),gpio1.read(),
gpio14.read(),gpio13.read(),gpio12.read(),gpio11.read(),
gpio10.read(),gpio9.read(),gpio8.read(),
gpio21.read(),gpio20.read(),gpio19.read(),gpio18.read(),
gpio17.read(),gpio16.read(),gpio15.read());
RS232_1.printf("GPIOP1: %d%d%d%d%d%d%d, GPIOP2: %d%d%d%d%d%d%d, GPIOP3: %d%d%d%d%d%d%d\r\n",gpio7.read(),gpio6.read(),gpio5.read(),gpio4.read(),
gpio3.read(),gpio2.read(),gpio1.read(),
gpio14.read(),gpio13.read(),gpio12.read(),gpio11.read(),
gpio10.read(),gpio9.read(),gpio8.read(),
gpio21.read(),gpio20.read(),gpio19.read(),gpio18.read(),
gpio17.read(),gpio16.read(),gpio15.read());
RS232_2.printf("GPIOP1: %d%d%d%d%d%d%d, GPIOP2: %d%d%d%d%d%d%d, GPIOP3: %d%d%d%d%d%d%d\r\n",gpio7.read(),gpio6.read(),gpio5.read(),gpio4.read(),
gpio3.read(),gpio2.read(),gpio1.read(),
gpio14.read(),gpio13.read(),gpio12.read(),gpio11.read(),
gpio10.read(),gpio9.read(),gpio8.read(),
gpio21.read(),gpio20.read(),gpio19.read(),gpio18.read(),
gpio17.read(),gpio16.read(),gpio15.read());
TTL.printf("GPIOP1: %d%d%d%d%d%d%d, GPIOP2: %d%d%d%d%d%d%d, GPIOP3: %d%d%d%d%d%d%d\r\n",gpio7.read(),gpio6.read(),gpio5.read(),gpio4.read(),
gpio3.read(),gpio2.read(),gpio1.read(),
gpio14.read(),gpio13.read(),gpio12.read(),gpio11.read(),
gpio10.read(),gpio9.read(),gpio8.read(),
gpio21.read(),gpio20.read(),gpio19.read(),gpio18.read(),
gpio17.read(),gpio16.read(),gpio15.read());
RS485.printf("GPIOP1: %d%d%d%d%d%d%d, GPIOP2: %d%d%d%d%d%d%d, GPIOP3: %d%d%d%d%d%d%d\r\n",gpio7.read(),gpio6.read(),gpio5.read(),gpio4.read(),
gpio3.read(),gpio2.read(),gpio1.read(),
gpio14.read(),gpio13.read(),gpio12.read(),gpio11.read(),
gpio10.read(),gpio9.read(),gpio8.read(),
gpio21.read(),gpio20.read(),gpio19.read(),gpio18.read(),
gpio17.read(),gpio16.read(),gpio15.read());
if (((bt_state.read())==1)&&(y==0)){
BT.printf("Bluetooth Conectado\r\n");
RS232_1.printf("Bluetooth Conectado\r\n");
RS232_2.printf("Bluetooth Conectado\r\n");
RS485.printf("Bluetooth Conectado\r\n");
TTL.printf("Bluetooth Conectado\r\n");
vm.putc(0XAA);
vm.putc(0X07);
vm.putc(0X02);
vm.putc(0X00);
vm.putc(0X01);
vm.putc(0XB4);
y = 1;
}
while(RS232_1.readable()) {
datox = RS232_1.getc();
wait_us(5000);
datoUSB[x] = datox;
x++;
}
while(BT.readable()) {
datox = BT.getc();
wait_us(5000);
datoUSB[x] = datox;
x++;
}
while(RS232_2.readable()) {
datox = RS232_2.getc();
wait_us(5000);
datoUSB[x] = datox;
x++;
}
while(TTL.readable()) {
datox = TTL.getc();
wait_us(5000);
datoUSB[x] = datox;
x++;
}
while(RS485.readable()) {
datox = RS485.getc();
wait_us(5000);
datoUSB[x] = datox;
x++;
}
if (x != 0) {
datoUSB[x] = '\0';
BT.printf("DATA: %s\r\n", datoUSB);
BT.printf("\nCaracteres: %d\r\n", x);
BT.printf("\r\n");
BT.printf("\r\n");
RS232_1.printf("DATA: %s\r\n", datoUSB);
RS232_1.printf("\nCaracteres: %d\r\n", x);
RS232_1.printf("\r\n");
RS232_1.printf("\r\n");
RS232_2.printf("DATA: %s\r\n", datoUSB);
RS232_2.printf("\nCaracteres: %d\r\n", x);
RS232_2.printf("\r\n");
RS232_2.printf("\r\n");
TTL.printf("DATA: %s\r\n", datoUSB);
TTL.printf("\nCaracteres: %d\r\n", x);
TTL.printf("\r\n");
TTL.printf("\r\n");
if(strcmp(ONOUTS,datoUSB) == 0) {
OUT1 = OUT2 = OUT3 = OUT4 = 1;
i= 1;
BT.printf("Salidas activadas\r\n");
RS232_1.printf("Salidas activadas\r\n");
RS232_2.printf("Salidas activadas\r\n");
TTL.printf("Salidas activadas\r\n");
RS485.printf("Salidas activadas\r\n");
vm.putc(0XAA);
vm.putc(0X07);
vm.putc(0X02);
vm.putc(0X00);
vm.putc(0X0A);
vm.putc(0XBD);
}
else if(strcmp(OFFOUTS,datoUSB) == 0) {
OUT1 = OUT2 = OUT3 = OUT4 = 0;
i= 1;
BT.printf("Salidas desactivadas\r\n");
RS232_1.printf("Salidas desactivadas\r\n");
RS232_2.printf("Salidas desactivadas\r\n");
RS485.printf("Salidas desactivadas\r\n");
TTL.printf("Salidas desactivadas\r\n");
vm.putc(0XAA);
vm.putc(0X07);
vm.putc(0X02);
vm.putc(0X00);
vm.putc(0X0B);
vm.putc(0XBE);
}
else if(strcmp(ONOUT1,datoUSB) == 0) {
OUT2 = OUT3 = OUT4 = 0;
OUT1 = 1;
i= 1;
BT.printf("Salida 1 Activada\r\n");
RS232_1.printf("Salida 1 Activada\r\n");
RS232_2.printf("Salida 1 Activada\r\n");
RS485.printf("Salida 1 Activada\r\n");
TTL.printf("Salida 1 Activada\r\n");
vm.putc(0XAA);
vm.putc(0X07);
vm.putc(0X02);
vm.putc(0X00);
vm.putc(0X02);
vm.putc(0XB5);
}
else if(strcmp(ONOUT2,datoUSB) == 0) {
OUT1 = OUT3 = OUT4 = 0;
OUT2 = 1;
i= 1;
BT.printf("Salida 2 Activada\r\n");
RS232_1.printf("Salida 2 Activada\r\n");
RS232_2.printf("Salida 2 Activada\r\n");
RS485.printf("Salida 2 Activada\r\n");
TTL.printf("Salida 2 Activada\r\n");
vm.putc(0XAA);
vm.putc(0X07);
vm.putc(0X02);
vm.putc(0X00);
vm.putc(0X03);
vm.putc(0XB6);
}
else if(strcmp(ONOUT3,datoUSB) == 0) {
OUT1 = OUT2 = OUT4 = 0;
OUT3 = 1;
i= 1;
BT.printf("Salida 3 Activada\r\n");
RS232_1.printf("Salida 3 Activada\r\n");
RS232_2.printf("Salida 3 Activada\r\n");
RS485.printf("Salida 3 Activada\r\n");
TTL.printf("Salida 3 Activada\r\n");
vm.putc(0XAA);
vm.putc(0X07);
vm.putc(0X02);
vm.putc(0X00);
vm.putc(0X04);
vm.putc(0XB7);
}
else if(strcmp(ONOUT4,datoUSB) == 0) {
OUT1 = OUT2 = OUT3 = 0;
OUT4 = 1;
i= 1;
BT.printf("Salida 4 Activada\r\n");
RS232_1.printf("Salida 4 Activada\r\n");
RS232_2.printf("Salida 4 Activada\r\n");
RS485.printf("Salida 4 Activada\r\n");
TTL.printf("Salida 4 Activada\r\n");
vm.putc(0XAA);
vm.putc(0X07);
vm.putc(0X02);
vm.putc(0X00);
vm.putc(0X05);
vm.putc(0XB8);
}
else if(strcmp(ON3V3,datoUSB) == 0) {
reg_3v3 = 1;
BT.printf("Regulador 3.3V activado\r\n");
RS232_1.printf("Regulador 3.3V activado\r\n");
RS232_2.printf("Regulador 3.3V activado\r\n");
RS485.printf("Regulador 3.3V activado\r\n");
TTL.printf("Regulador 3.3V activado\r\n");
vm.putc(0XAA);
vm.putc(0X07);
vm.putc(0X02);
vm.putc(0X00);
vm.putc(0X06);
vm.putc(0XB9);
}
else if(strcmp(OFF3V3,datoUSB) == 0) {
reg_3v3 = 0;
BT.printf("Regulador 3.3V desactivado\r\n");
RS232_1.printf("Regulador 3.3V desactivado\r\n");
RS232_2.printf("Regulador 3.3V desactivado\r\n");
RS485.printf("Regulador 3.3V desactivado\r\n");
TTL.printf("Regulador 3.3V desactivado\r\n");
vm.putc(0XAA);
vm.putc(0X07);
vm.putc(0X02);
vm.putc(0X00);
vm.putc(0X07);
vm.putc(0XBA);
}
else if(strcmp(RSTBT,datoUSB) == 0) {
BT_RST = 0;
wait_us(100000);
BT_RST = 1;
y = 0;
BT.printf("Reset BT\r\n");
RS232_1.printf("Reset BT\r\n");
RS232_2.printf("Reset BT\r\n");
RS485.printf("Reset BT\r\n");
TTL.printf("Reset BT\r\n");
}
else if(strcmp(ON5V,datoUSB) == 0) {
reg_5v = 1;
BT.printf("Regulador 5V activado\r\n");
RS232_1.printf("Regulador 5V activado\r\n");
RS232_2.printf("Regulador 5V activado\r\n");
RS485.printf("Regulador 5V activado\r\n");
TTL.printf("Regulador 5V activado\r\n");
vm.putc(0XAA);
vm.putc(0X07);
vm.putc(0X02);
vm.putc(0X00);
vm.putc(0X08);
vm.putc(0XBB);
}
else if(strcmp(OFF5V,datoUSB) == 0) {
reg_5v = 0;
BT.printf("Regulador 5V desactivado\r\n");
RS232_1.printf("Regulador 5V desactivado\r\n");
RS232_2.printf("Regulador 5V desactivado\r\n");
RS485.printf("Regulador 5V desactivado\r\n");
TTL.printf("Regulador 5V desactivado\r\n");
vm.putc(0XAA);
vm.putc(0X07);
vm.putc(0X02);
vm.putc(0X00);
vm.putc(0X09);
vm.putc(0XBC);
}
else if(strcmp(ANTO,datoUSB) == 0) {
vm.putc(0XAA);
vm.putc(0X07);
vm.putc(0X02);
vm.putc(0X00);
vm.putc(0X0C);
vm.putc(0XBF);
}
else{
BT.printf("COMANDO INVALIDO\n");
RS232_1.printf("COMANDO INVALIDO\n");
RS232_2.printf("COMANDO INVALIDO\n");
RS485.printf("COMANDO INVALIDO\n");
TTL.printf("COMANDO INVALIDO\n");
}
}
wait_us(3000000);
}//while true
}//main