Skip to main content
Visitor II
June 28, 2022
Solved

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

  • June 28, 2022
  • 2 replies
  • 1090 views

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?

    This topic has been closed for replies.
    Best answer by jmorganj

    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.

    2 replies

    Technical Moderator
    June 28, 2022

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

    Does it answer your question?

    Regards

    /Peter

    jmorganjAuthor
    Visitor II
    June 28, 2022

    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?

    jmorganjAuthorAnswer
    Visitor II
    June 30, 2022

    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.