Se crea una estructura para el envío de datos a Matlab Simulink, luego, se envía byte a byte para que esta funcione como se muestra en el siguiente código:
NOTA: Se debe ingresar la librería “Serial.h”
#include "stm32f4xx.h"
#include "Serial.h"
#include <stdio.h>
#include <string>
#include <stdlib.h>
#include <time.h>
void Delay_ms(int x){
for(volatile int i=0;i<x*940; i++){ //Cambiar el 940 por un valor para que de cerca en ms
asm("nop");
}
}
//ENVÍO DATOS A MATLAB
typedef union{
float number;
uint8_t bytes[4];
}envio_m;
envio_m valorcito;
float generate_random_float(float min, float max) {
return min + ((float)rand() / RAND_MAX) * (max - min);
}
int main(void){
RCC->AHB1ENR |= 0X7; //Activa relojes
confi_usart2_PA2_PA3(115200);
while(1){
float siu = generate_random_float(0.0,1.0);
Serial_write('J');
valorcito.number = siu;
for(int i=0; i<4;i++){
Serial_write(valorcito.bytes[i]);
}
Serial_write('\n');
Delay_ms(100);
}
return 0;
}

