Gast
#3132914
Hallo, ich habe zwei stm32, der eine kann den anderen mit dem internen Bootloader neu Flashen. leider habe ich beim löschen ein Problem und ich weis nicht wieso. in dem einen steht der nachfolgende Code: // Flash Schreibschutz aufheben sendToBootloader(0x73); sendToBootloader(0x8C); TimeoutBoot = 200; while(((read_buffer2[0] != 0x79)||(read_buffer2[1] != 0x79)) && (TimeoutBoot != 0)); read_buffer2[0] = 0x00; read_buffer2[1] = 0x00; // Flash löschen bWritePtr2 = 0; sendToBootloader(0x44); sendToBootloader(0xBB); TimeoutBoot = 200; while((read_buffer2[0] != 0x79) && (TimeoutBoot != 0)); sendToBootloader(0xFF); sendToBootloader(0xFE); sendToBootloader(0x01); Delay(3); while((read_buffer2[1] != 0x79) && (TimeoutBoot != 0)); Zum Problem: nachdem ich den Schreibschutz aufhebe bekomm ich ein ACK (0x79) von dem Bootloader zurück. Nachdem ich das Kommando zum Löschen schicke (0x44 + 0xBB) bekomme ich ein ACK (0x79) zurück. nachdem ich die Adresse und checksumme (0xff, 0xFE und 0x01) schicke, bekomme ich ein NACK (0x1F) zurück. hat jemand eine idee wieso? Danke