cancel
Showing results for 
Search instead for 
Did you mean: 

STM32WB15 Using LPUART instead of USART1

Serial-Kellogs
Associate

Hello,

I am currently using the NUCLEO-WB15CC to test STM32CubeMonitor-RF.
I imported the BLE_TransparentMode example to be able to use Monitor RF. Everything works perfectly when using the default USART1 interface.
I also tested the communication using an FTDI cable instead of the NUCLEO’s embedded ST-Link virtual COM port (by removing the RX and TX jumpers), and the FTDI connection works fine with USART1.

For my project, I would like to use LPUART1 instead of USART1 to communicate with Monitor RF. CubeIDE seems to allow switching between UART instances easily. I configured LPUART1 in the same way as USART1, using DMA and the same settings. The configuration compiles and programs correctly, and I have successfully flashed the firmware.

Midleware_TransparentMode_Configuration.png

I am using the same FTDI cable, connected to the connect LPUART1 pins (RX: PA3, TX: PB5), but I am unable to establish any connection with CubeMonitor-RF.

(Of course, I double-checked the RX/TX wiring and tried swapping them just in case.)

If I use (RX: PA3, TX: PA2) It is working

If I use (RX: PA12, TX: PA2) It is working

My question is:

  • Is PB5 not allowed for LPUART1? Or is there any specific configuration required?

Thank you for your help.

3 REPLIES 3
STTwo-32
ST Employee

Hello @Serial-Kellogs and welcome to the ST Community.

Nothing special for the PB5. It should be able to work just fine. Could you please check if it is working well on your board for a simple Transmit (without BLE Context)?

Best Regards.

STTwo-32

 

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.

Hello SSTwo-32,

Thank you for your response.

I finally found the root of the issue.
In the example provided by ST, within MX_APPE_Init(void) → APPE_Led_Init(), pin PB5 was configured as a debug LED.

By commenting out the LED_Init() function, everything now works correctly.

I did not see in .ioc the CFG_LED_SUPPORTED parameter that I could put to 0 instead of commenting the function.

Thanks again for your support!

Best regards,
Victor

 

 

 

Good to hear that you found the cause.

Now please mark that post as the solution - instructions here.

A complex system that works is invariably found to have evolved from a simple system that worked.
A complex system designed from scratch never works and cannot be patched up to make it work.