• arm裸机测试led灯亮灭、风扇、马达等


     汇编代码:

    1. .text
    2. .global _start
    3. _start:
    4. @RCC使能GPIOE RCC_MP_AHB4ENSETR[4]->1
    5. LDR R0,=0X50000A28
    6. LDR R1,[R0]
    7. ORR R1,R1,#(0X3<<4)
    8. ORR R1,R1,#0X10@PB
    9. STR R1,[R0]
    10. @设置PE10/8为输出模式 GPIOE_MODER[20:21]->01
    11. LDR R0,=0X50006000
    12. LDR R1,[R0]
    13. @10
    14. BIC R1,R1,#(0X3<<20)
    15. ORR R1,R1,#(0X1<<20)
    16. @8
    17. BIC R1,R1,#(0X3<<16)
    18. ORR R1,R1,#(0X1<<16)
    19. @9
    20. BIC R1,R1,#(0X3<<18)
    21. ORR R1,R1,#(0X1<<18)
    22. STR R1,[R0]
    23. @设置PF10为输出模式 GPIOE_MODER[20:21]->01
    24. LDR R0,=0X50007000
    25. LDR R1,[R0]
    26. @10
    27. BIC R1,R1,#(0X3<<20)
    28. ORR R1,R1,#(0X1<<20)
    29. @6
    30. BIC R1,R1,#(0X3<<12)
    31. ORR R1,R1,#(0X1<<12)
    32. STR R1,[R0]
    33. @设置PE10为推挽输出 GPIOE_OTYPER[10]->0
    34. LDR R0,=0X50006004
    35. LDR R1,[R0]
    36. @10
    37. BIC R1,R1,#(0X1<<10)
    38. @8
    39. BIC R1,R1,#(0X1<<8)
    40. @9
    41. BIC R1,R1,#(0X1<<9)
    42. STR R1,[R0]
    43. @设置PF10为推挽输出 GPIOE_OTYPER[10]->0
    44. LDR R0,=0X50007004
    45. LDR R1,[R0]
    46. @10
    47. BIC R1,R1,#(0X1<<10)
    48. @6
    49. BIC R1,R1,#(0X1<<6)
    50. STR R1,[R0]
    51. @设置PE10为低速输出 GPIOE_OSPEEDR[20:21]->00
    52. LDR R0,=0X50006008
    53. LDR R1,[R0]
    54. @10
    55. BIC R1,R1,#(0X1<<20)
    56. @8
    57. BIC R1,R1,#(0X1<<16)
    58. @9
    59. BIC R1,R1,#(0X1<<18)
    60. STR R1,[R0]
    61. @设置PF10为低速输出 GPIOE_OSPEEDR[20:21]->00
    62. LDR R0,=0X50007008
    63. LDR R1,[R0]
    64. @10
    65. BIC R1,R1,#(0X3<<20)
    66. @6
    67. BIC R1,R1,#(0X1<<12)
    68. STR R1,[R0]
    69. @设置PE10为输出无上下拉 GPIOE_PUPDR[20:21]->00
    70. LDR R0,=0X5000600C
    71. LDR R1,[R0]
    72. @10
    73. BIC R1,R1,#(0X1<<20)
    74. @8
    75. BIC R1,R1,#(0X1<<16)
    76. @9
    77. BIC R1,R1,#(0X1<<18)
    78. STR R1,[R0]
    79. @设置PF10为输出无上下拉 GPIOE_PUPDR[20:21]->00
    80. LDR R0,=0X5000700C
    81. LDR R1,[R0]
    82. @10
    83. BIC R1,R1,#(0X3<<20)
    84. @6
    85. BIC R1,R1,#(0X1<<12)
    86. STR R1,[R0]
    87. @闪烁
    88. loop:
    89. BL wind_on
    90. BL led1_on
    91. bl delay
    92. BL led1_off
    93. BL led2_on
    94. bl delay
    95. BL led2_off
    96. BL led3_on
    97. bl delay
    98. BL led3_off
    99. BL power_on
    100. bl delay
    101. BL power_off
    102. BL wind_off
    103. b loop
    104. @LED1亮
    105. led1_on:
    106. LDR R0,=0x50006014
    107. LDR R1,[R0]
    108. ORR R1,R1,#(0x1<<10)
    109. STR R1,[R0]
    110. mov pc,lr
    111. @LED1灭
    112. led1_off:
    113. LDR R0,=0x50006014
    114. LDR R1,[R0]
    115. BIC R1,R1,#(0x1<<10)
    116. STR R1,[R0]
    117. mov pc,lr
    118. @LED2亮
    119. led2_on:
    120. LDR R0,=0x50007014
    121. LDR R1,[R0]
    122. ORR R1,R1,#(0x1<<10)
    123. STR R1,[R0]
    124. mov pc,lr
    125. @LED2灭
    126. led2_off:
    127. LDR R0,=0x50007014
    128. LDR R1,[R0]
    129. BIC R1,R1,#(0x1<<10)
    130. STR R1,[R0]
    131. mov pc,lr
    132. @LED3亮
    133. led3_on:
    134. LDR R0,=0x50006014
    135. LDR R1,[R0]
    136. ORR R1,R1,#(0x1<<8)
    137. STR R1,[R0]
    138. mov pc,lr
    139. @LED3灭
    140. led3_off:
    141. LDR R0,=0x50006014
    142. LDR R1,[R0]
    143. BIC R1,R1,#(0x1<<8)
    144. STR R1,[R0]
    145. mov pc,lr
    146. @POWER
    147. power_on:
    148. LDR R0,=0x50007014
    149. LDR R1,[R0]
    150. ORR R1,R1,#(0x1<<6)
    151. STR R1,[R0]
    152. mov pc,lr
    153. power_off:
    154. LDR R0,=0x50007014
    155. LDR R1,[R0]
    156. BIC R1,R1,#(0x1<<6)
    157. STR R1,[R0]
    158. mov pc,lr
    159. @WIND
    160. wind_on:
    161. LDR R0,=0x50006014
    162. LDR R1,[R0]
    163. ORR R1,R1,#(0x1<<9)
    164. STR R1,[R0]
    165. mov pc,lr
    166. @LED1灭
    167. wind_off:
    168. LDR R0,=0x50006014
    169. LDR R1,[R0]
    170. BIC R1,R1,#(0x1<<9)
    171. STR R1,[R0]
    172. mov pc,lr
    173. @封装汇编的延时函数
    174. delay:
    175. LDR R1,=0X10000000
    176. mm:
    177. cmp R1,#0
    178. SUBNE R1,R1,#1
    179. BNE mm
    180. mov pc,lr
    181. .end

    现象:

    xianxiang

  • 相关阅读:
    HashMap
    【设计模式】设计模式
    软件测试简历项目经验该怎么写?【两年经验】
    LLM-TAP随笔——大语言模型基础【深度学习】【PyTorch】【LLM】
    有数BI开发
    导航基础知识
    Windows桌面自动化测试工具:WinAppDriver
    C++操作ZEROMQ
    UTM 坐标系
    java中集合框架的基础-1
  • 原文地址:https://blog.csdn.net/m0_61834469/article/details/134340195