Skip to main content
Associate
February 28, 2025
Question

Block for sending values through the UART

  • February 28, 2025
  • 2 replies
  • 3076 views

Hello, I am trying to wire STM32F103C8T6 with DS18B20 sensor and I realize that after some actions it stopped to work and no data through the UART sent:

stm32-proteus.png

cube-ide-clock-configuration.png

stm-32-rcc.png

usart-1.png

usart-2.png

Probably it's not big deal, but I have no idea why UART completelly blocked and sending no information.
Current version of this code based on the materials of:
 https://deepbluembedded.com/stm32-1-wire-one-wire-protocol-ds18b20-code-example/ 

2 replies

Tesla DeLorean
Guru
February 28, 2025

You'll have to debug it. Your output buffer isn't really big enough to hold the string and NUL termination.

Try something more like

int number = 123;
uint8_t numarray[8]; // make sure you have enough space
...
while(1)
{ // sprintf returns the string length
 HAL_UART_Transmit(&huart1, numarray, sprintf(numarray, "%d\n", number), 1000);
}
Tips, Buy me a coffee, or three.. PayPal VenmoUp vote any posts that you find helpful, it shows what's working..
Associate
February 28, 2025

I extended buffer size but unfortunately nothing changed...
Can be something wrong with configuration I applied?

Tesla DeLorean
Guru
February 28, 2025

No idea

Do you have actual hardware? Can you put a scope on the signals, and use a debugger?

Check the code that configures the pins.

Do you have a supervisor or trainer?

Do you have any other working example in this environment?

Tips, Buy me a coffee, or three.. PayPal VenmoUp vote any posts that you find helpful, it shows what's working..
Associate
March 1, 2025

I don't have an local trainer or any support. So I took a chance here.

Andrew Neil
Super User
March 1, 2025

Proteus has a debugger which allows you to step through the code - doesn't it?

So have you done that?

 

It also has "virtual" instruments (akin to oscilloscopes, etc) to observe signals external to the MCU.

Have you used them?

 

Have you got the UART working without the DS18B20 sensor?

 

Some tips here on getting started with STM32 - including debugging:

https://community.st.com/t5/stm32-mcus-products/for-better-learning-stm32-programming-and-debugging/m-p/719468/highlight/true#M260690

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.