2025-06-04 3:14 AM - last edited on 2025-06-04 3:22 AM by mƎALLEm
Hello everyone, I have the following question: when, as in the attached image, you see a peripheral like the USART1 in yellow (in conflict with other peripherals), is it still possible to use it? I ask this information because I am looking for a NUCLEO card that best meets my specifications and I want to avoid buying a card for which I can not use the peripherals I need to the fullest.
Solved! Go to Solution.
2025-06-04 6:24 AM
With any interface on any board, you need to check that things on that board won't interfere with what you intend to do.
Common things which could interfere:
The way to check is in the board's User Manual and the Schematics - which can be found on the Product Page
The attraction of Nucleo boards is that they tend to have minimal "extras" - so you get maximum choice of what pins are free to use.
But, rather than just saying "I want to use USART1", a better approach may be to say "I want to use a USART" - and then look for which USART(s) is/are free ...
This is not specific to STM32 or even ST - the same arises with any microcontroller
2025-06-04 3:20 AM - edited 2025-06-04 4:13 AM
Hello,
The Yellow color (AFAIK) means you can use partially the peripheral / in certain mode with that "conflict".
Red color you cannot use it at all with that "conflict".
You need to pass the mice cursor over the colored background and see what message is showing and what conflict it presents.
2025-06-04 3:26 AM
@mƎALLEm wrote:Red color you cannot use it at all.
Can't be used simultaneously - but, depending on the application, it might be possible to reconfigure at run time so that one is used at a time as required ...
2025-06-04 3:37 AM
IN addition to the comments already posted, it looks like the IDE config tool tells you the selection of UART pins conflict with another, here probably USB.
Many peripherals (like UART) have several GPIO routing options which you can choose alternatively (or even simultaneously). In this case, review the data sheet for respectiva "alternate GPIO functions" and check for another option.
More complex peripherals like USB, ethernet or external busses (parallel memory, LCD) use to have few or no alternatives.
2025-06-04 3:49 AM - edited 2025-06-04 3:50 AM
@Andrew Neil wrote:
@mƎALLEm wrote:
Red color you cannot use it at all.
Can't be used simultaneously - but, depending on the application, it might be possible to reconfigure at run time so that one is used at a time as required ...
Indeed but that requires the user needs to reconfigure the peripheral each time he switches from a peripheral to another. But in some cases even it's possible in software that's not possible from hardware stand point to due to the hardware constraints of the application itself i.e. the external components that induce some conflicts..
2025-06-04 4:09 AM
UA(S)RT is a good example:
it is yellow, because you might not be able to use all IOs for synchronous operation, but still the common async. 2-pin version.
That is IMO the best use case for CubeMX: not for generating (more than basic init) source code, but to find out which peripherals might block each other because of the multiple alternate functions on the GPIOs.
2025-06-04 4:34 AM
thanks everyone. One last question. If I disable the USB_OTG_FS device to keep the USART1 device fully operational, what problems could I run into?
2025-06-04 4:38 AM
If it's on a Nucleo board, make sure that there aren't components (eg, related to USB) fitted to those pins which would interfere with UART operation.
Or just reconfigure UART1 to use different pins.
2025-06-04 4:39 AM - edited 2025-06-04 4:40 AM
@SMusc.1 wrote:
thanks everyone. One last question. If I disable the USB_OTG_FS device to keep the USART1 device fully operational, what problems could I run into?
As I answered @Andrew Neil , this is not only a question of software but also a question of hardware, you need to check if the USB external components don't interfere with USART signals that you will use.
2025-06-04 4:43 AM
Configuring UART1 on different pins is fine, but I didn't understand the first answer. Could you be more specific or give me some more detailed examples? For the board I use: nucleo-u575zi-q, for now I'm only interested in working on timers, ADC, USART. Can I therefore safely disable the USB-related pins?