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;
}

image.png

image.png