Skip to main content
picguy2
Associate III
December 8, 2011
Question

STM32F1/F4 incompatible I/O

  • December 8, 2011
  • 2 replies
  • 494 views
Posted on December 08, 2011 at 19:32

From their respective RMs:

STM32F1... 0x4002 2000 - 0x4002 23FF Flash memory interface

STM32F4... 0x4002 2000 - 0x4002 23FF GPIOI

Thus a project predicated on STM32x compatibility must have at least different I/O base addresses based on processor type.  Damn!

I guess I have to say it again, “substantial compatibilityâ€� or in ST’s case, “compatibleâ€�, means incompatible.  Now I have to go through, identify all the differences and come up with a way to select the proper include files.

Does anyone know if the (possibly subset of) I/O offset address are always the same?
    This topic has been closed for replies.

    2 replies

    Tesla DeLorean
    Guru
    December 8, 2011
    Posted on December 08, 2011 at 19:39

    The AFIO/Muxing is also completely different.

    If you have code dependent on addresses and bits within peripheral registers you'll probably be spending a lot of time reworking it.

    Tips, Buy me a coffee, or three.. PayPal VenmoUp vote any posts that you find helpful, it shows what's working..
    picguy2
    picguy2Author
    Associate III
    December 8, 2011
    Posted on December 08, 2011 at 21:35

    How true.  Fortunately it’s “only�? an RTOS.  But some H/W setup needs to be done.  Example: a millisecond tick.

    At least I don’t have much in the way of I/O drivers.

    But ST said that the F4s were compatible.  A binary that works on my STM3210E-EVAL will not work on my new F4 Discovery board.  Setting 2 wait states for 72MHz on the older processor sets bits for GPIO port I on the newer processor.  Bah, humbug!