• 10.8流水灯


    1. .text
    2. .global _start
    3. _start:
    4. @1.设置GPIOE寄存器的时钟使能 RCC_MP_AHB4ENSETR[4]->1 0x50000a28
    5. LDR R0,=0X50000A28
    6. LDR R1,[R0] @从r0为起始地址的4字节数据取出放在R1
    7. ORR R1,R1,#(0x1<<4) @第4位设置为1
    8. STR R1,[R0] @写回
    9. @1.设置GPIOF寄存器的时钟使能 RCC_MP_AHB4ENSETR[4]->1 0x50000a28
    10. LDR R0,=0X50000A28
    11. LDR R1,[R0] @从r0为起始地址的4字节数据取出放在R1
    12. ORR R1,R1,#(0x1<<5) @第5位设置为1
    13. STR R1,[R0] @写回
    14. @2.设置PE10管脚为输出模式 GPIOE_MODER[21:20]->01 0x50006000
    15. LDR R0,=0x50006000
    16. LDR R1,[R0]
    17. BIC R1,R1,#(0x3<<20)@[21L20]清0
    18. ORR R1,R1,#(0X1<<20) @设置
    19. STR R1,[R0]
    20. @2.设置PE8管脚为输出模式 GPIOE_MODER[17:16]->01 0x50006000
    21. LDR R0,=0x50006000
    22. LDR R1,[R0]
    23. BIC R1,R1,#(0x3<<16)
    24. ORR R1,R1,#(0X1<<16) @设置
    25. STR R1,[R0]
    26. @3.设置PE10管脚为推挽输出 GPIOE_OTYPER[10]->0 0X50006004
    27. LDR R0,=0X50006004
    28. LDR R1,[R0]
    29. BIC R1,R1,#(0X1<<10)
    30. STR R1,[R0]
    31. @3.设置PE8管脚为推挽输出 GPIOE_OTYPER[8]->0 0X50006004
    32. LDR R0,=0X50006004
    33. LDR R1,[R0]
    34. BIC R1,R1,#(0X1<<8)
    35. STR R1,[R0]
    36. @4.设置PE10管脚为低速输出 GPIOE_OSPEEDR[21:20]->00 0X50006008
    37. LDR R0,=0x50006008
    38. LDR R1,[R0]
    39. BIC R1,R1,#(0x3<<20)@[21L20]清0
    40. STR R1,[R0]
    41. @4.设置PE8管脚为低速输出 GPIOE_OSPEEDR[17:16]->00 0X50006008
    42. LDR R0,=0x50006008
    43. LDR R1,[R0]
    44. BIC R1,R1,#(0x3<<16)
    45. STR R1,[R0]
    46. @5.设置PE10管脚输出时没有上拉下拉电阻 GPIOE_PUPDR[21:20]->00 0X5000600C
    47. LDR R0,=0x5000600c
    48. LDR R1,[R0]
    49. BIC R1,R1,#(0x3<<20)@[21L20]清0
    50. STR R1,[R0]
    51. @5.设置PE8管脚输出时没有上拉下拉电阻 GPIOE_PUPDR[17:16]->00 0X5000600C
    52. LDR R0,=0x5000600c
    53. LDR R1,[R0]
    54. BIC R1,R1,#(0x3<<16)
    55. STR R1,[R0]
    56. @设置PF10管脚为输出模式 GPIOF_MODER[21:20]->01 0x50007000
    57. LDR R0,=0x50007000
    58. LDR R1,[R0]
    59. BIC R1,R1,#(0x3<<20)@[21L20]清0
    60. ORR R1,R1,#(0X1<<20) @设置
    61. STR R1,[R0]
    62. @设置PF10管脚为推挽输出 GPIOF_OTYPER[10]->0 0X50007004
    63. LDR R0,=0X50007004
    64. LDR R1,[R0]
    65. BIC R1,R1,#(0X1<<10)
    66. STR R1,[R0]
    67. @设置PF10管脚为低速输出 GPIOF_OSPEEDR[21:20]->00 0X50007008
    68. LDR R0,=0x50006008
    69. LDR R1,[R0]
    70. BIC R1,R1,#(0x3<<20)@[21L20]清0
    71. STR R1,[R0]
    72. @设置PF10管脚输出时没有上拉下拉电阻 GPIOF_PUPDR[21:20]->00 0X5000700C
    73. LDR R0,=0x5000700c
    74. LDR R1,[R0]
    75. BIC R1,R1,#(0x3<<20)@[21L20]清0
    76. STR R1,[R0]
    77. @ 6.PE10输出高低电平 GPIOE_ODR[10]->1(高电平) 0(低电平) 0X50006014
    78. @LED1亮灭交替
    79. loop:
    80. @亮
    81. LDR R0,=0X50006014
    82. LDR R1,[R0]
    83. ORR R1,R1,#(0x1<<10)
    84. STR R1,[R0]
    85. BL delay
    86. @灭
    87. LDR R0,=0X50006014
    88. LDR R1,[R0]
    89. BIC R1,R1,#(0x1<<10)
    90. STR R1,[R0]
    91. BL delay
    92. LDR R0,=0X50007014
    93. LDR R1,[R0]
    94. ORR R1,R1,#(0x1<<10)
    95. STR R1,[R0]
    96. BL delay
    97. LDR R0,=0X50007014
    98. LDR R1,[R0]
    99. BIC R1,R1,#(0x1<<10)
    100. STR R1,[R0]
    101. BL delay
    102. @亮
    103. LDR R0,=0X50006014
    104. LDR R1,[R0]
    105. ORR R1,R1,#(0x1<<8)
    106. STR R1,[R0]
    107. BL delay
    108. @灭
    109. LDR R0,=0X50006014
    110. LDR R1,[R0]
    111. BIC R1,R1,#(0x1<<8)
    112. STR R1,[R0]
    113. BL delay
    114. b loop
    115. @封装延时函数
    116. delay:
    117. LDR R4,=0X10000000
    118. mm:
    119. cmp r4,#0
    120. subne r4,r4,#1
    121. bne mm
    122. mov pc,lr @程序返回
    123. .end

  • 相关阅读:
    一款功能强大的Python工具,一键打包神器,一次编写、多平台运行!
    Transformer模型 | 用于目标检测的视觉Transformers训练策略
    云原生Kubernetes:CRI 容器运行时接口
    页面优化技术
    CSS - 移动端布局(一)关键的前置知识
    Linux MYSQL-5.7.23-rpm安装(附带安装包)
    java毕业设计城镇保障性住房管理系统mybatis+源码+调试部署+系统+数据库+lw
    FFmepg使用指南
    vue2视频video循环渲染卡顿
    GAIA1-自动驾驶各场景数据生成
  • 原文地址:https://blog.csdn.net/sy311SB/article/details/133689917