cancel
Showing results for 
Search instead for 
Did you mean: 

STM32H743i & stmpe811

GreenGuy
Lead
Posted on March 31, 2018 at 00:35

I am trying to construct a CubeMX based version of the LwIP_HTTP_Server_Netconn_RTOS project in the repository.  I have used the board selector in CubeMx of the H743i-Eval and setup the options for the hardware to match with the example.  I have added the same drivers and BSP components as used in the project and all compiles OK.

However as soon as I try to add the call BSP_LCD_Init() the linker throws numerous errors all coming from stmpe811.o flagging IOE_Read, IOE_Write, IOE_Delay, IOE_ReadMultiple, IOE_ITConfig as undefined references.

What is going on?

I have attached the eclipse based project.

1 ACCEPTED SOLUTION

Accepted Solutions
Posted on March 31, 2018 at 00:58

Would need the command line define USE_IOEXPANDER to pull the components inside STM32Cube_FW_H7_V1.2.0\Drivers\BSP\STM32H743I_EVAL\stm32h743i_eval.c

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..

View solution in original post

6 REPLIES 6
Posted on March 31, 2018 at 00:58

Would need the command line define USE_IOEXPANDER to pull the components inside STM32Cube_FW_H7_V1.2.0\Drivers\BSP\STM32H743I_EVAL\stm32h743i_eval.c

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
GreenGuy
Lead
Posted on March 31, 2018 at 01:20

Thank You Clive.  On a previous build somehow this was happening for me so on this time around it was not set.  Isn't there a way to get this into the Cube project such as a User Constant in the I2C1 Configuration?

Posted on March 31, 2018 at 01:52

Unfortunately not a CubeMX power user, there might be a way in there somewhere. The alternative might be to add it into stm32h7xx_hal_conf.h if that has a USER section.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
Posted on March 31, 2018 at 02:13

I don't understand the issue, I use the cube, upto the end of the PCB.

I adjust the config slightly as I code.

I add the define for the IIC slave address, you can define or declare a user constant anywhere you like.

I dont use the onboard LCD, so no help for you there.

are you using the eval board or is it your own board ??

how many pins in your device ?, did you check every pin inside the cube is aligned with your PCB ?

The H743 is very new, so there may be some issues inside the cube.

Do you have an example from ST that runs the LCD ? 

can you request the cube file ? (but I am not sure if its available for distribution,)

Posted on March 31, 2018 at 02:24

The EVAL board has an IO Expander to push low bandwidth GPIO off the chip, ie uses 2 I2C pins and that muxes out to 16 or so GPIO.

For whatever reason half the code in the main BSP has a dependency on the USE_IO_EXPANDER define, if this drops out the SDMMC and TS drivers will fall over.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
GreenGuy
Lead
Posted on April 02, 2018 at 18:28

I put USE_IOEXPANDER defined in I2C Constants sections in CubeMx.  Cube forces the constant to take a value or Cube will not let you add it to the Constants.  No matter, the code is only looking for it to be defined and the value does not matter.   However, putting the define in the Constants for I2C in Cube causes the definition to appear in main.h which I think odd.  I am not sure where to put the define in Cube to make it show up in the Properties>Paths and Symbols>Symbols Tab.  For now I can make it work by adding the define in the Eclipse tools but since this is part of the BSP supplied through CubeMx it should be controlled from within CubeMx.