cancel
Showing results for 
Search instead for 
Did you mean: 

printf not working via ITM_Sendchar, _write never called

hegde_08
Associate II

I am trying to use SWD for printing using ITM_Sendchar, Printf not calling _write, I tried to put breakpoint and see, But it is not hitting breakpoint

 

 

hegde_08_0-1765201262291.pnghegde_08_1-1765201284864.pnghegde_08_2-1765201298919.pnghegde_08_3-1765201309930.png

hegde_08_0-1765201502832.pnghegde_08_1-1765201558665.png

 

1 ACCEPTED SOLUTION

Accepted Solutions

Clock speed needs to match.

Doesn't the STM32F3 have a default HSI of 8 MHz?

Use that speed.

Perhaps also output to the VCP USART so you can see in a Terminal app, and print out SystemCoreClock to confirm.

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

24 REPLIES 24
KnarfB
Super User

By default, stdout is line buffered. You will see output only after a newline '\n'. Less common: stdout buffering might be changed to unbuffered as well.

hth

KnarfB

Andrew Neil
Super User

welcome to the forum.

Please see How to write your question to maximize your chances to find a solution - particularly how to post source code (not as images).

See also: How to insert source code

 

As @KnarfB said, stdout defaults to line-buffered, so you won't see any output until a newline is sent.

This is also noted in the Knowledgebase article, How to redirect the printf function to a UART for debug messages.

See also: https://community.st.com/t5/stm32-mcus/how-to-redirect-the-printf-function-to-a-uart-for-debug-messages/ta-p/49865#:~:text=5.2.%20Line%2Dbuffering,has%20been%20formed - which includes how to disable the line-buffering.

Also Try: 

printf( "Hello World!\n" );

instead...

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.

I just came here to give update, So _write is called, But now Even though I enabled SWD, and trace, and Port 0, Print is not working

hegde_08_0-1765204062648.pnghegde_08_1-1765204087049.pnghegde_08_2-1765204103898.pnghegde_08_3-1765204122339.png

 

gbm
Principal

Board type? (If ST.) Schematic? (If your own.)

My STM32 stuff on github - compact USB device stack and more: https://github.com/gbm-ii/gbmUSBdevice

STM32 , NUCLEO-F303RE

gbm
Principal

Is the SWO pin configured in CubeMX?

My STM32 stuff on github - compact USB device stack and more: https://github.com/gbm-ii/gbmUSBdevice

Is SB15 fitted?

AndrewNeil_0-1765270805052.png

https://www.st.com/resource/en/user_manual/um1724-stm32-nucleo64-boards-mb1136-stmicroelectronics.pdf#page=15

via: https://www.st.com/en/evaluation-tools/nucleo-f303re.html#documentation

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.

I don't understand this, Could you please explain what exactly is the question?

 

How do I check this? any steps would be helpful