Advertisement
teplofizik

stm32f4xx.inc (8)

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