How do I access STM32 HAL headers in Simulink S-Function-Builder?
Afficher commentaires plus anciens
I'm using an STM32 Nucleo L476RG working on a controller for an inverted pendulum.
In order to collect RPM readings from the motor's encoder I tried to create an S-Function with the S-Function-Builder block in order to initialize registers and obtain RPM readings. However, when I try to include STM32 HAL header files I get errors like 'fatal error C1083' with messages like '"stm32l4xx_hal_tim.h": No such file or directory'.
I was under the assumption I'd be able to use HAL headers when using the 'Simulink Coder Support Package for STMicroelectronics Nucleo Boards' add-on. Is there anything else I need in order to use them?
1 commentaire
Elizabeth
le 2 Mai 2025
Were you abe to figure this out? I am also trying to use STM functions in c code in a simulink model and am finding it difficult.
Réponses (1)
Mark McBroom
le 30 Mar 2022
1 vote
What is the purpose of the C Coder you are trying to integrate with S-Function Builder? The purpose of S-Function builder is to bring algorithmic code into Simulink, not code that access STM32-specific peripherals. S-Function builder compiles and links C/C++ code into a Windows mex functionn ( DLL ) . STM32 specific code/headers will not compile. There are a couple of ways to work around this.
- If the C code is mostly algorithmic, you can use preprocessing macros to ignore the STM32-specific code when compiling the code for S-Function builder.
2. If the code is for a device driver, you can create a "stub" version of the C function that provides a simulation of the device... for example if it is a function to read A2D, for simulation the function could just return a number between 0 and 255. And then when compiling code for the target processor, replace the stub C function with the STM32 version of the C function.
1 commentaire
Arun
le 25 Oct 2024
Hello Mark
Does it mean we cannot directly access STM32 registers directly from MATLAB/SImulink?
I am also looking to create s-function/ Builder to access DWT CYCCNT of STM32 so I can get CPU utilization time, Is it possible to access register DWT directly from MATLAB/Simulink>?
Catégories
En savoir plus sur STMicroelectronics Discovery Boards dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!