cancel
Showing results for 
Search instead for 
Did you mean: 

How do I import the files for the LED driver on the STM32H747i-Eval board?

jmorganj
Associate III

I want to use the LED/Display drivers already written for the evaluation board. I am unable to include "stm32h747i_eval.h" which is located in my repository folder "STM32Cube/Repository/STM32Cube_FW_H7_V1.10.0/Drivers/BSP/STM32H747I-EVAL". Can this be done in CubeMX or do I need to link the folder in the project?

1 ACCEPTED SOLUTION

Accepted Solutions
jmorganj
Associate III

The directions from here, are about as good as it gets, which is disappointing. For any of these BSP files to work with CubeMx, you must setup the peripheral in cube. If you do not, then it is likely that the portion of the Hal library needed by a specific BSP file, will not be available. Also, it is possible to run into re-declaration issues (multiple definitions of ...) that come from the BSP files using the same peripheral set up names as cube. Also, there are a bunch of conf files needed for these BSP files. That is sloppy. At worst, it should be one file they all reference. Otherwise, you are looking for a bunch of templates for the conf files or copying from a bunch of other locations.

I did not need to copy anything from Utilities to get them a full build working as the directions say.

I got as far as getting the stm32h747xi_eval files imported and built. You need the proper conf file with them and the errno file. Even then, the LED's never worked for me. I ended up setting up the LED pins in Cube by checking the user manual where they were connected. I then wrote a few macros for setting them and then there was light.

The BSP files are very disappointing. Why would they not work with Cube? Why not have Cube import them as middleware? If I start a board specific project in Cube, then I'd expect any middleware API to be imported as well. Way more work is needed to get them running otherwise. This seems sloppy to me.

View solution in original post

3 REPLIES 3
Peter BENSCH
ST Employee

You must include the libraries within the project, i.e. in your GUI or compiler.

Does it answer your question?

Regards

/Peter

In order to give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.

I followed directions from here. I placed the folders in the upper level of my project since I'm using a dual core. Then I went about trying to link sources and includes. I get lots of implicit definitions and unkown locations of other headers. Are the BSP files not out of box? Should I be having to go into all the files and add headers or make changes? Also, how do I know which parts of components to keep?

jmorganj
Associate III

The directions from here, are about as good as it gets, which is disappointing. For any of these BSP files to work with CubeMx, you must setup the peripheral in cube. If you do not, then it is likely that the portion of the Hal library needed by a specific BSP file, will not be available. Also, it is possible to run into re-declaration issues (multiple definitions of ...) that come from the BSP files using the same peripheral set up names as cube. Also, there are a bunch of conf files needed for these BSP files. That is sloppy. At worst, it should be one file they all reference. Otherwise, you are looking for a bunch of templates for the conf files or copying from a bunch of other locations.

I did not need to copy anything from Utilities to get them a full build working as the directions say.

I got as far as getting the stm32h747xi_eval files imported and built. You need the proper conf file with them and the errno file. Even then, the LED's never worked for me. I ended up setting up the LED pins in Cube by checking the user manual where they were connected. I then wrote a few macros for setting them and then there was light.

The BSP files are very disappointing. Why would they not work with Cube? Why not have Cube import them as middleware? If I start a board specific project in Cube, then I'd expect any middleware API to be imported as well. Way more work is needed to get them running otherwise. This seems sloppy to me.