stm32/matlab system object data conversion problem
조회 수: 1 (최근 30일)
이전 댓글 표시
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;
}
댓글 수: 0
채택된 답변
추가 답변 (1개)
Goutham Varanasi
2024년 1월 30일
편집: Goutham Varanasi
2024년 1월 30일
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.
참고 항목
카테고리
Help Center 및 File Exchange에서 Get Started with Embedded Coder Support Package for STMicroelectronics STM32 Processors에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!