I'm trying to make an I3C Master device using the NUCLEO-H503 board.
I am trying to implement GPIO by directly controlling, without using HAL Library.
However, I3C port uses both Open Drain and Push pull,
Is it possible to implement this function with Cube MX?
And if possible, is it necessary to modify the circuit such as external pull-up R?
Solved! Go to Solution.
Hi, yes I think best is to use the CubeMX. It will generate HAL code to initialize the GPIO and the I3C. If you are planning to reduce use of HAL for optimization purpose, you can write the critical communication using direct register access or HAL_LL and leave the HAL only to initialize. If you want to get rid of the HAL completely, for some reason, you can then write own code that reproduces the initialization steps to have same settings in the registers.
Just to warn you, some steps taken by the HAL, which may seem redundant, are actually there for better reliability or safety.
The GPIO will end up in "Alternate funcion" mode.
You can choose to use either internal or external pull-up. I think the internal suffice most of the time, but your application may have higher requirements.
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.