1
0

stm32_compat.h 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #ifndef _STM32_COMPAT_H_
  2. #define _STM32_COMPAT_H_
  3. #ifndef PLATFORMIO
  4. #include <stm32.h>
  5. #else // PLATFORMIO
  6. /* modify bitfield */
  7. #define _BMD(reg, msk, val) (reg) = (((reg) & ~(msk)) | (val))
  8. /* set bitfield */
  9. #define _BST(reg, bits) (reg) = ((reg) | (bits))
  10. /* clear bitfield */
  11. #define _BCL(reg, bits) (reg) = ((reg) & ~(bits))
  12. /* wait until bitfield set */
  13. #define _WBS(reg, bits) while(((reg) & (bits)) == 0)
  14. /* wait until bitfield clear */
  15. #define _WBC(reg, bits) while(((reg) & (bits)) != 0)
  16. /* wait for bitfield value */
  17. #define _WVL(reg, msk, val) while(((reg) & (msk)) != (val))
  18. /* bit value */
  19. #define _BV(bit) (0x01 << (bit))
  20. #if defined(STM32F0xx)
  21. #include <stm32f0xx.h>
  22. #elif defined(STM32F1xx)
  23. #include <stm32f1xx.h>
  24. #elif defined(STM32F2xx)
  25. #include <stm32f2xx.h>
  26. #elif defined(STM32F3xx)
  27. #include <stm32f3xx.h>
  28. #elif defined(STM32F4xx)
  29. #include <stm32f4xx.h>
  30. #elif defined(STM32F7xx)
  31. #include <stm32f7xx.h>
  32. #elif defined(STM32H7xx)
  33. #include <stm32h7xx.h>
  34. #elif defined(STM32L0xx)
  35. #include <stm32l0xx.h>
  36. #elif defined(STM32L1xx)
  37. #include <stm32l1xx.h>
  38. #elif defined(STM32L4xx)
  39. #include <stm32l4xx.h>
  40. #elif defined(STM32L5xx)
  41. #include <stm32l5xx.h>
  42. #elif defined(STM32G0xx)
  43. #include <stm32g0xx.h>
  44. #elif defined(STM32G4xx)
  45. #include <stm32g4xx.h>
  46. #elif defined(STM32WBxx)
  47. #include <stm32wbxx.h>
  48. #else
  49. #error "STM32 family not defined"
  50. #endif
  51. #endif // PLATFORMIO
  52. #endif // _STM32_COMPAT_H_