Advertisement
teplofizik

stm32f4xx.inc (5)

Aug 7th, 2012
257
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ; STM32F4xx.inc
  2. ; Файл описания периферии STM32F4xx.
  3. ; http://teplofizik.diary.ru/p179425307.htm
  4.  
  5.     AREA    |.text|, CODE, READONLY
  6.  
  7. ; RCC
  8. RCC_AHB1ENR           EQU 0x40023830
  9. RCC_AHB1ENR_GPIOAEN   EQU 0x00000001 ; GPIOA
  10. RCC_AHB1ENR_GPIOBEN   EQU 0x00000002 ; GPIOB
  11. RCC_AHB1ENR_GPIOCEN   EQU 0x00000004 ; GPIOC
  12. RCC_AHB1ENR_GPIODEN   EQU 0x00000008 ; GPIOD
  13. RCC_AHB1ENR_GPIOEEN   EQU 0x00000010 ; GPIOE
  14.  
  15. RCC_APB2ENR           EQU 0x40023844
  16. RCC_APB2ENR_SPI1EN    EQU 0x00001000 ; SPI1
  17.  
  18. ; GPIO
  19. GPIOA_BASE            EQU 0x40020000
  20. GPIOB_BASE            EQU 0x40020400
  21. GPIOC_BASE            EQU 0x40020800
  22. GPIOD_BASE            EQU 0x40020C00
  23. GPIOE_BASE            EQU 0x40021000
  24.  
  25. ; Регистры
  26. GPIO_MODER_OFFSET     EQU 0x00000000 ; GPIOx->MODER
  27. GPIO_OTYPER_OFFSET    EQU 0x00000004 ; GPIOx->OTYPER
  28. GPIO_OSPEEDR_OFFSET   EQU 0x00000008 ; GPIOx->OSPEEDR
  29. GPIO_PUPDR_OFFSET     EQU 0x0000000C ; GPIOx->PUPDR
  30. GPIO_IDR_OFFSET       EQU 0x00000010 ; GPIOx->IDR
  31. GPIO_ODR_OFFSET       EQU 0x00000014 ; GPIOx->ODR
  32. GPIO_BSRRL_OFFSET     EQU 0x00000018 ; GPIOx->BSRRL Сброс
  33. GPIO_BSRRH_OFFSET     EQU 0x0000001A ; GPIOx->BSRRH Установка
  34. GPIO_LCKR_OFFSET      EQU 0x0000001C ; GPIOx->LCKR
  35. GPIO_AFRL_OFFSET      EQU 0x00000020 ; GPIOx->AFRL
  36. GPIO_AFRH_OFFSET      EQU 0x00000024 ; GPIOx->AFRH
  37.  
  38. ; GPIOx->OSPEEDR
  39. ; Режим: 25 МГц
  40. GPIO_OSPEEDR_OSPEEDR0_0   EQU 0x00000001
  41. GPIO_OSPEEDR_OSPEEDR1_0   EQU 0x00000004
  42. GPIO_OSPEEDR_OSPEEDR2_0   EQU 0x00000010
  43. GPIO_OSPEEDR_OSPEEDR3_0   EQU 0x00000040
  44. GPIO_OSPEEDR_OSPEEDR4_0   EQU 0x00000100
  45. GPIO_OSPEEDR_OSPEEDR5_0   EQU 0x00000400
  46. GPIO_OSPEEDR_OSPEEDR6_0   EQU 0x00001000
  47. GPIO_OSPEEDR_OSPEEDR7_0   EQU 0x00004000
  48. GPIO_OSPEEDR_OSPEEDR8_0   EQU 0x00010000
  49. GPIO_OSPEEDR_OSPEEDR9_0   EQU 0x00040000
  50. GPIO_OSPEEDR_OSPEEDR10_0  EQU 0x00100000
  51. GPIO_OSPEEDR_OSPEEDR11_0  EQU 0x00400000
  52. GPIO_OSPEEDR_OSPEEDR12_0  EQU 0x01000000
  53. GPIO_OSPEEDR_OSPEEDR13_0  EQU 0x04000000
  54. GPIO_OSPEEDR_OSPEEDR14_0  EQU 0x10000000
  55. GPIO_OSPEEDR_OSPEEDR15_0  EQU 0x40000000
  56.  
  57. ; GPIOx->OSPEEDR
  58. ; Режим: 50 МГц
  59. GPIO_OSPEEDR_OSPEEDR0_1   EQU 0x00000002
  60. GPIO_OSPEEDR_OSPEEDR1_1   EQU 0x00000008
  61. GPIO_OSPEEDR_OSPEEDR2_1   EQU 0x00000020
  62. GPIO_OSPEEDR_OSPEEDR3_1   EQU 0x00000080
  63. GPIO_OSPEEDR_OSPEEDR4_1   EQU 0x00000200
  64. GPIO_OSPEEDR_OSPEEDR5_1   EQU 0x00000800
  65. GPIO_OSPEEDR_OSPEEDR6_1   EQU 0x00002000
  66. GPIO_OSPEEDR_OSPEEDR7_1   EQU 0x00008000
  67. GPIO_OSPEEDR_OSPEEDR8_1   EQU 0x00020000
  68. GPIO_OSPEEDR_OSPEEDR9_1   EQU 0x00080000
  69. GPIO_OSPEEDR_OSPEEDR10_1  EQU 0x00200000
  70. GPIO_OSPEEDR_OSPEEDR11_1  EQU 0x00800000
  71. GPIO_OSPEEDR_OSPEEDR12_1  EQU 0x02000000
  72. GPIO_OSPEEDR_OSPEEDR13_1  EQU 0x08000000
  73. GPIO_OSPEEDR_OSPEEDR14_1  EQU 0x20000000
  74. GPIO_OSPEEDR_OSPEEDR15_1  EQU 0x80000000
  75.  
  76. ; GPIOx->MODER
  77. ; Режим: цифровой выход
  78. GPIO_MODER_MODER0_0   EQU 0x00000001
  79. GPIO_MODER_MODER1_0   EQU 0x00000004
  80. GPIO_MODER_MODER2_0   EQU 0x00000010
  81. GPIO_MODER_MODER3_0   EQU 0x00000040
  82. GPIO_MODER_MODER4_0   EQU 0x00000100
  83. GPIO_MODER_MODER5_0   EQU 0x00000400
  84. GPIO_MODER_MODER6_0   EQU 0x00001000
  85. GPIO_MODER_MODER7_0   EQU 0x00004000
  86. GPIO_MODER_MODER8_0   EQU 0x00010000
  87. GPIO_MODER_MODER9_0   EQU 0x00040000
  88. GPIO_MODER_MODER10_0  EQU 0x00100000
  89. GPIO_MODER_MODER11_0  EQU 0x00400000
  90. GPIO_MODER_MODER12_0  EQU 0x01000000
  91. GPIO_MODER_MODER13_0  EQU 0x04000000
  92. GPIO_MODER_MODER14_0  EQU 0x10000000
  93. GPIO_MODER_MODER15_0  EQU 0x40000000
  94.  
  95. ; GPIOx->MODER
  96. ; Режим: альтернативная функция
  97. GPIO_MODER_MODER0_1   EQU 0x00000002
  98. GPIO_MODER_MODER1_1   EQU 0x00000008
  99. GPIO_MODER_MODER2_1   EQU 0x00000020
  100. GPIO_MODER_MODER3_1   EQU 0x00000080
  101. GPIO_MODER_MODER4_1   EQU 0x00000200
  102. GPIO_MODER_MODER5_1   EQU 0x00000800
  103. GPIO_MODER_MODER6_1   EQU 0x00002000
  104. GPIO_MODER_MODER7_1   EQU 0x00008000
  105. GPIO_MODER_MODER8_1   EQU 0x00020000
  106. GPIO_MODER_MODER9_1   EQU 0x00080000
  107. GPIO_MODER_MODER10_1  EQU 0x00200000
  108. GPIO_MODER_MODER11_1  EQU 0x00800000
  109. GPIO_MODER_MODER12_1  EQU 0x02000000
  110. GPIO_MODER_MODER13_1  EQU 0x08000000
  111. GPIO_MODER_MODER14_1  EQU 0x20000000
  112. GPIO_MODER_MODER15_1  EQU 0x80000000
  113.  
  114. ; GPIOx->PUPDR
  115. ; Режим: подтяжка к питанию (pull-up)
  116. GPIO_PUPDR_PUPDR0_0   EQU 0x00000001
  117. GPIO_PUPDR_PUPDR1_0   EQU 0x00000004
  118. GPIO_PUPDR_PUPDR2_0   EQU 0x00000010
  119. GPIO_PUPDR_PUPDR3_0   EQU 0x00000040
  120. GPIO_PUPDR_PUPDR4_0   EQU 0x00000100
  121. GPIO_PUPDR_PUPDR5_0   EQU 0x00000400
  122. GPIO_PUPDR_PUPDR6_0   EQU 0x00001000
  123. GPIO_PUPDR_PUPDR7_0   EQU 0x00004000
  124. GPIO_PUPDR_PUPDR8_0   EQU 0x00010000
  125. GPIO_PUPDR_PUPDR9_0   EQU 0x00040000
  126. GPIO_PUPDR_PUPDR10_0  EQU 0x00100000
  127. GPIO_PUPDR_PUPDR11_0  EQU 0x00400000
  128. GPIO_PUPDR_PUPDR12_0  EQU 0x01000000
  129. GPIO_PUPDR_PUPDR13_0  EQU 0x04000000
  130. GPIO_PUPDR_PUPDR14_0  EQU 0x10000000
  131. GPIO_PUPDR_PUPDR15_0  EQU 0x40000000
  132.  
  133. ; GPIOx->PUPDR
  134. ; Режим: подтяжка к земле (pull-down)
  135. GPIO_PUPDR_PUPDR0_1   EQU 0x00000002
  136. GPIO_PUPDR_PUPDR1_1   EQU 0x00000008
  137. GPIO_PUPDR_PUPDR2_1   EQU 0x00000020
  138. GPIO_PUPDR_PUPDR3_1   EQU 0x00000080
  139. GPIO_PUPDR_PUPDR4_1   EQU 0x00000200
  140. GPIO_PUPDR_PUPDR5_1   EQU 0x00000800
  141. GPIO_PUPDR_PUPDR6_1   EQU 0x00002000
  142. GPIO_PUPDR_PUPDR7_1   EQU 0x00008000
  143. GPIO_PUPDR_PUPDR8_1   EQU 0x00020000
  144. GPIO_PUPDR_PUPDR9_1   EQU 0x00080000
  145. GPIO_PUPDR_PUPDR10_1  EQU 0x00200000
  146. GPIO_PUPDR_PUPDR11_1  EQU 0x00800000
  147. GPIO_PUPDR_PUPDR12_1  EQU 0x02000000
  148. GPIO_PUPDR_PUPDR13_1  EQU 0x08000000
  149. GPIO_PUPDR_PUPDR14_1  EQU 0x20000000
  150. GPIO_PUPDR_PUPDR15_1  EQU 0x80000000
  151.  
  152. ; GPIOx->BSSR
  153. ; Маска выводов
  154. GPIO_BSSR_PIN0        EQU 0x00000001 ; 0 бит
  155. GPIO_BSSR_PIN1        EQU 0x00000002 ; 1 бит
  156. GPIO_BSSR_PIN2        EQU 0x00000004 ; 2 бит
  157. GPIO_BSSR_PIN3        EQU 0x00000008 ; 3 бит
  158. GPIO_BSSR_PIN4        EQU 0x00000010 ; 4 бит
  159. GPIO_BSSR_PIN5        EQU 0x00000020 ; 5 бит
  160. GPIO_BSSR_PIN6        EQU 0x00000040 ; 6 бит
  161. GPIO_BSSR_PIN7        EQU 0x00000080 ; 7 бит
  162. GPIO_BSSR_PIN8        EQU 0x00000100 ; 8 бит
  163. GPIO_BSSR_PIN9        EQU 0x00000200 ; 9 бит
  164. GPIO_BSSR_PIN10       EQU 0x00000400 ; 10 бит
  165. GPIO_BSSR_PIN11       EQU 0x00000800 ; 11 бит
  166. GPIO_BSSR_PIN12       EQU 0x00001000 ; 12 бит
  167. GPIO_BSSR_PIN13       EQU 0x00002000 ; 13 бит
  168. GPIO_BSSR_PIN14       EQU 0x00004000 ; 14 бит
  169. GPIO_BSSR_PIN15       EQU 0x00008000 ; 15 бит
  170.  
  171. ; SPI
  172. SPI1_BASE             EQU 0x40013000
  173.  
  174. ; Регистры
  175. SPI_CR1_OFFSET        EQU 0x00000000 ; SPI->CR1
  176. SPI_CR2_OFFSET        EQU 0x00000004 ; SPI->CR2
  177. SPI_SR_OFFSET         EQU 0x00000008 ; SPI->SR
  178. SPI_DR_OFFSET         EQU 0x0000000C ; SPI->DR
  179. SPI_CRCPR_OFFSET      EQU 0x00000010 ; SPI->CRCPR
  180. SPI_RXCRCR_OFFSET     EQU 0x00000014 ; SPI->RXCRCR
  181. SPI_TXCRCR_OFFSET     EQU 0x00000018 ; SPI->TXCRCR
  182. SPI_I2SCFGR_OFFSET    EQU 0x0000001C ; SPI->I2SCFGR
  183. SPI_I2SPR_OFFSET      EQU 0x00000020 ; SPI->I2SPR
  184.  
  185. ; SPI->CR1
  186. ; Биты настройки
  187. SPI_CR1_CPHA          EQU 0x0001 ; Clock phase
  188. SPI_CR1_CPOL          EQU 0x0002 ; Clock Polarity
  189. SPI_CR1_MSTR          EQU 0x0004 ; Master Selection
  190.  
  191. SPI_CR1_BR            EQU 0x0038 ; BR[2:0] bits (Baud Rate Control)
  192. SPI_CR1_BR_0          EQU 0x0008 ; Bit 0
  193. SPI_CR1_BR_1          EQU 0x0010 ; Bit 1
  194. SPI_CR1_BR_2          EQU 0x0020 ; Bit 2
  195.  
  196. SPI_CR1_SPE           EQU 0x0040 ; SPI Enable
  197. SPI_CR1_LSBFIRST      EQU 0x0080 ; Frame Format
  198. SPI_CR1_SSI           EQU 0x0100 ; Internal slave select
  199. SPI_CR1_SSM           EQU 0x0200 ; Software slave management
  200. SPI_CR1_RXONLY        EQU 0x0400 ; Receive only
  201. SPI_CR1_DFF           EQU 0x0800 ; Data Frame Format
  202. SPI_CR1_CRCNEXT       EQU 0x1000 ; Transmit CRC next
  203. SPI_CR1_CRCEN         EQU 0x2000 ; Hardware CRC calculation enable
  204. SPI_CR1_BIDIOE        EQU 0x4000 ; Output enable in bidirectional mode
  205. SPI_CR1_BIDIMODE      EQU 0x8000 ; Bidirectional data mode enable
  206.  
  207. ; SPI->SR
  208. ; Флаги состояния модуля
  209. SPI_SR_RXNE           EQU 0x01 ; Receive buffer Not Empty
  210. SPI_SR_TXE            EQU 0x02 ; Transmit buffer Empty
  211. SPI_SR_CHSIDE         EQU 0x04 ; Channel side
  212. SPI_SR_UDR            EQU 0x08 ; Underrun flag
  213. SPI_SR_CRCERR         EQU 0x10 ; CRC Error flag
  214. SPI_SR_MODF           EQU 0x20 ; Mode fault
  215. SPI_SR_OVR            EQU 0x40 ; Overrun flag
  216. SPI_SR_BSY            EQU 0x80 ; Busy flag
  217.  
  218.     END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement