stm32/matlab system object data conversion problem
3 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
I want to implement stm32 as USB_cdc using Simulink block and because Simulink stm32 doesn’t support usb so I have to create a block for this purpose. I used block driver method to do this. As you see below I created a system object and it is sending data correctly.
But when I want to use “oout” in Simulink, data is corrupted and meaningless.
Here is my procedure :
function y = stepImpl(obj) %#ok<MANU>
y =uint64(0);
if isempty(coder.target)
% Place simulation output code here
else
% Call C-function implementing device output
y = coder.ceval('data_change');
end
end
when data_cgange function called it dose:
1: send "oout" value to host with "CDC_Transmit_FS" function.(it is hardware layer function and work properly)
2: return "oout" value so i can use it in simulink.(it is not working)
"oout" value is filled in hardware layer and is declared "uint8_t oout[APP_RX_DATA_SIZE];" in code.
long double data_change(void)
{
CDC_Transmit_FS(oout, 5);
memset (a,'\0',10);
memcpy( a, oout, 10);
fout = *a;
//strtod(oout,endpoint);
return fout;
}
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1593961/image.png)
0 comentarios
Respuesta aceptada
Más respuestas (1)
Goutham Varanasi
el 30 de En. de 2024
Editada: Goutham Varanasi
el 30 de En. de 2024
This seems to be an issue with the code. Debug the generated code in cube IDE using the below mentioned process.
- In Model, set Build configuration as Debug: Open Model settings from Modeling tab. Go to Code Generation -> Build process. Select Debug in Build configuration
- Build the project from Simulink.
- Create a new STM32 Project in STM32CubeIDE. Select the required board on which you are going to debug the Simulink-generated code.
- Click on Debug -> Debug Configuration
- Right Click on STM32 Cortex-M C/C++ Application -> New Configuration
- Browse the STM32 project created in Step 3 as Project
- Browse the elf generated from Simulink in C/C++ Application and Click Debug
Note:
• Close all open files before starting debug session.
• Debugging starts in ert_main.c file. Add breakpoints and use Step Into to go inside functions. It will open the relevant source files.
• To add a specify source file for debugging, go to File -> Open File… Browse the file and use it for debugging.
Ver también
Categorías
Más información sobre Get Started with Embedded Coder Support Package for STMicroelectronics STM32 Processors en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!