Showing results for 
Search instead for 
Did you mean: 

Problem with programming one STM32F070RB thru another STM32F070RB (connected uarts) using Raspberry pi and stm32flash

Associate II

Hello everyone,

at the start I would like to apologize for my English. It's not the best so I hope that you won't have any dificulties with reading and understanding my problem.

I have very strange problem with programming STM32F070RBT.

So I am trying to program one STM32 processor thru another one.

To achieve this I had to create sort of "bridge" program, and flash it to the first processor.

The bridge program has nothing in it except transmiting every recived bit to different UART. Everything is happening in RxCpltCallback. And in this program every huart is set to Parity bit NONE.

Everything works fine when use stm32flash -w Bridge.hex /dev/ttyAMA0 to program the first processor. After programming the first processor I am starting it, so the bridge program is running.

Then I use stm32flash -w ProgramForSecondProcessor.hex /dev/ttyAMA0 to program the second processor thru bridge program. In this part the processor which has brigde program in it fails and the communication breaks. By saying program fails, I mean that the communication byte going back to RPI (from second processor, but thru the bridge processor) sends byte with parity bit set to NONE.

After this problem appeared, I thought that maybe I will change huart bytes settings to parity even, but when I've done it, the communication breaks on start.

On the RPI terminal I can see error:

Unknown/unsupported device (Device ID: 0x400) although my device ID is 0x448 (which I can see while correctly programming the first processor)

In the attachments I attached main.c file of a bridge program, and photo of the moment when communication breaks.


Is this about the default UART bootloader? AFAIK the required format there is 8E1, which in STM32 translates to 9 bit frames.

I don't Cube.


Associate II

Yes it is about default bootloader, but thru bridge STM32. I know it is 8E1 and it is translated to 9 bit frames, but my communications sems wrong.