sys.h 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. #ifndef __SYS_H
  2. #define __SYS_H
  3. //#include "stm32f1xx.h"
  4. //////////////////////////////////////////////////////////////////////////////////
  5. //锟斤拷锟斤拷锟斤拷只锟斤拷学习使锟矫o拷未锟斤拷锟斤拷锟斤拷锟斤拷桑锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷魏锟斤拷锟酵�
  6. //ALIENTEK STM32锟斤拷锟斤拷锟斤拷
  7. //锟斤拷锟斤拷原锟斤拷@ALIENTEK
  8. //锟斤拷锟斤拷锟斤拷坛:www.openedv.com
  9. //锟睫革拷锟斤拷锟斤拷:2012/8/18
  10. //锟芥本锟斤拷V1.7
  11. //锟斤拷权锟斤拷锟叫o拷锟斤拷锟斤拷鼐锟斤拷锟�
  12. //Copyright(C) 锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷涌萍锟斤拷锟斤拷薰锟剿� 2009-2019
  13. //All rights reserved
  14. //////////////////////////////////////////////////////////////////////////////////
  15. //0,锟斤拷支锟斤拷ucos
  16. //1,支锟斤拷ucos
  17. #define SYSTEM_SUPPORT_OS 0 //锟斤拷锟斤拷系统锟侥硷拷锟斤拷锟角凤拷支锟斤拷UCOS
  18. ///////////////////////////////////////////////////////////////////////////////////
  19. //锟斤拷锟斤拷一些锟斤拷锟矫碉拷锟斤拷锟斤拷锟斤拷锟酵短关硷拷锟斤拷
  20. //typedef int32_t s32;
  21. //typedef int16_t s16;
  22. //typedef int8_t s8;
  23. //typedef const int32_t sc32;
  24. //typedef const int16_t sc16;
  25. //typedef const int8_t sc8;
  26. //typedef __IO int32_t vs32;
  27. //typedef __IO int16_t vs16;
  28. //typedef __IO int8_t vs8;
  29. //typedef __I int32_t vsc32;
  30. //typedef __I int16_t vsc16;
  31. //typedef __I int8_t vsc8;
  32. //typedef uint32_t u32;
  33. //typedef uint16_t u16;
  34. //typedef uint8_t u8;
  35. typedef const uint32_t uc32;
  36. typedef const uint16_t uc16;
  37. typedef const uint8_t uc8;
  38. typedef __IO uint32_t vu32;
  39. typedef __IO uint16_t vu16;
  40. typedef __IO uint8_t vu8;
  41. typedef __I uint32_t vuc32;
  42. typedef __I uint16_t vuc16;
  43. typedef __I uint8_t vuc8;
  44. //位锟斤拷锟斤拷锟斤拷,实锟斤拷51锟斤拷锟狡碉拷GPIO锟斤拷锟狡癸拷锟斤拷
  45. //锟斤拷锟斤拷实锟斤拷思锟斤拷,锟轿匡拷<<CM3权锟斤拷指锟斤拷>>锟斤拷锟斤拷锟斤拷(87页~92页).
  46. //IO锟节诧拷锟斤拷锟疥定锟斤拷
  47. #define BITBAND(addr, bitnum) ((addr & 0xF0000000)+0x2000000+((addr &0xFFFFF)<<5)+(bitnum<<2))
  48. #define MEM_ADDR(addr) *((volatile unsigned long *)(addr))
  49. #define BIT_ADDR(addr, bitnum) MEM_ADDR(BITBAND(addr, bitnum))
  50. //IO锟节碉拷址映锟斤拷
  51. #define GPIOA_ODR_Addr (GPIOA_BASE+12) //0x4001080C
  52. #define GPIOB_ODR_Addr (GPIOB_BASE+12) //0x40010C0C
  53. #define GPIOC_ODR_Addr (GPIOC_BASE+12) //0x4001100C
  54. #define GPIOD_ODR_Addr (GPIOD_BASE+12) //0x4001140C
  55. #define GPIOE_ODR_Addr (GPIOE_BASE+12) //0x4001180C
  56. #define GPIOF_ODR_Addr (GPIOF_BASE+12) //0x40011A0C
  57. #define GPIOG_ODR_Addr (GPIOG_BASE+12) //0x40011E0C
  58. #define GPIOA_IDR_Addr (GPIOA_BASE+8) //0x40010808
  59. #define GPIOB_IDR_Addr (GPIOB_BASE+8) //0x40010C08
  60. #define GPIOC_IDR_Addr (GPIOC_BASE+8) //0x40011008
  61. #define GPIOD_IDR_Addr (GPIOD_BASE+8) //0x40011408
  62. #define GPIOE_IDR_Addr (GPIOE_BASE+8) //0x40011808
  63. #define GPIOF_IDR_Addr (GPIOF_BASE+8) //0x40011A08
  64. #define GPIOG_IDR_Addr (GPIOG_BASE+8) //0x40011E08
  65. //IO锟节诧拷锟斤拷,只锟皆碉拷一锟斤拷IO锟斤拷!
  66. //确锟斤拷n锟斤拷值小锟斤拷16!
  67. #define PAout(n) BIT_ADDR(GPIOA_ODR_Addr,n) //锟斤拷锟�
  68. #define PAin(n) BIT_ADDR(GPIOA_IDR_Addr,n) //锟斤拷锟斤拷
  69. #define PBout(n) BIT_ADDR(GPIOB_ODR_Addr,n) //锟斤拷锟�
  70. #define PBin(n) BIT_ADDR(GPIOB_IDR_Addr,n) //锟斤拷锟斤拷
  71. #define PCout(n) BIT_ADDR(GPIOC_ODR_Addr,n) //锟斤拷锟�
  72. #define PCin(n) BIT_ADDR(GPIOC_IDR_Addr,n) //锟斤拷锟斤拷
  73. #define PDout(n) BIT_ADDR(GPIOD_ODR_Addr,n) //锟斤拷锟�
  74. #define PDin(n) BIT_ADDR(GPIOD_IDR_Addr,n) //锟斤拷锟斤拷
  75. #define PEout(n) BIT_ADDR(GPIOE_ODR_Addr,n) //锟斤拷锟�
  76. #define PEin(n) BIT_ADDR(GPIOE_IDR_Addr,n) //锟斤拷锟斤拷
  77. #define PFout(n) BIT_ADDR(GPIOF_ODR_Addr,n) //锟斤拷锟�
  78. #define PFin(n) BIT_ADDR(GPIOF_IDR_Addr,n) //锟斤拷锟斤拷
  79. #define PGout(n) BIT_ADDR(GPIOG_ODR_Addr,n) //锟斤拷锟�
  80. #define PGin(n) BIT_ADDR(GPIOG_IDR_Addr,n) //锟斤拷锟斤拷
  81. //锟斤拷锟斤拷为锟斤拷嗪�锟斤拷
  82. void WFI_SET(void); //执锟斤拷WFI指锟斤拷
  83. void INTX_DISABLE(void);//锟截憋拷锟斤拷锟斤拷锟叫讹拷
  84. void INTX_ENABLE(void); //锟斤拷锟斤拷锟斤拷锟斤拷锟叫讹拷
  85. void MSR_MSP(uint32_t addr); //锟斤拷锟矫讹拷栈锟斤拷址
  86. #endif