cancel
Showing results for 
Search instead for 
Did you mean: 

Nucleo H755 LED3 not turning on (PB14) in IPC Example

Duc
Associate III

 

Hi everyone,

I am working on a project with the STM32H755ZI-Q (Nucleo H755ZI-Q) board, and I am following this tutorial for Inter-Processor Communication (IPC) using OpenAMP: Link to tutorial.

The setup involves two processors (M4 and M7). Here's the LED behavior that I have implemented:

  • LED1 (PB0) is assigned to M4.

  • LED2 (PE1) and LED3 (PB14) are assigned to M7.

  • When M7 sends a message to M4, M4 replies, and LED1 turns ON.

  • If M7 receives the expected message, LED2 turns ON; otherwise, LED3 should turn ON.

The issue:

Everything seems to work fine when LED2 is assigned to M7 (PB14), as it turns ON as expected. However, when I swap the assignments and move LED2 to LED3 (PB14), LED3 doesn’t turn on, despite the message being received and processed correctly.

I have tried putting LED3 in a while loop in the main function and toggling it manually with:

HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_14);

but still, LED3 (PB14) does not turn ON.

Has anyone encountered a similar issue or can suggest where the problem might lie?

Any help would be greatly appreciated!

Thanks in advance!

5 REPLIES 5
TDK
Super User

Ensure it is assigned a core context and is being initialized as a GPIO output.

If in doubt, look at the GPIOB register and ensure MODER bits are as expected.

If you feel a post has answered your question, please click "Accept as Solution".
Duc
Associate III

Hi @TDK,

Thanks for the reminder! Those are things I always keep in mind when working with GPIO initialization and configuration.

Duc_0-1754582237440.png

 

Mike_ST
ST Employee

Hello,

Share code, ioc file, if you can.

Use a voltmeter to check PB14 output on CN8. Q3 transistor or LD3 LED might be non working.

 

Duc
Associate III

Hi @Mike_ST ,

I’ve tested my LEDs with the Blinky code, and everything is working fine. Here’s the code I’m using:

 

TDK
Super User
  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
	  HAL_GPIO_WritePin(GPIOB, GPIO_PIN_14, GPIO_PIN_SET);
  }

It's probably working as intended but gets changed in the main loop before you can visually notice.

If you feel a post has answered your question, please click "Accept as Solution".