• day10.8ubentu流水灯


    流水灯

    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. @2.设置PE10管脚为输出模式 GPIOE_MODER[21:20]->01 0x50006000
    10. LDR R0,=0x50006000
    11. LDR R1,[R0]
    12. BIC R1,R1,#(0x3<<20)@[21L20]清0
    13. ORR R1,R1,#(0X1<<20) @设置
    14. STR R1,[R0]
    15. @3.设置PE10管脚为推挽输出 GPIOE_OTYPER[10]->0 0X50006004
    16. LDR R0,=0X50006004
    17. LDR R1,[R0]
    18. BIC R1,R1,#(0X1<<10)
    19. STR R1,[R0]
    20. @4.设置PE10管脚为低速输出 GPIOE_OSPEEDR[21:20]->00 0X50006008
    21. LDR R0,=0x50006008
    22. LDR R1,[R0]
    23. BIC R1,R1,#(0x3<<20)@[21L20]清0
    24. STR R1,[R0]
    25. @5.设置PE10管脚输出时没有上拉下拉电阻 GPIOE_PUPDR[21:20]->00 0X5000600C
    26. LDR R0,=0x5000600c
    27. LDR R1,[R0]
    28. BIC R1,R1,#(0x3<<20)@[21L20]清0
    29. STR R1,[R0]
    30. @2.设置PE8管脚为输出模式 GPIOE_MODER[21:20]->01 0x50006000
    31. LDR R0,=0x50006000
    32. LDR R1,[R0]
    33. BIC R1,R1,#(0x3<<16)@[21L20]清0
    34. ORR R1,R1,#(0X1<<16) @设置
    35. STR R1,[R0]
    36. @3.设置PE8管脚为推挽输出 GPIOE_OTYPER[10]->0 0X50006004
    37. LDR R0,=0X50006004
    38. LDR R1,[R0]
    39. BIC R1,R1,#(0X1<<8)
    40. STR R1,[R0]
    41. @4.设置PE8管脚为低速输出 GPIOE_OSPEEDR[21:20]->00 0X50006008
    42. LDR R0,=0x50006008
    43. LDR R1,[R0]
    44. BIC R1,R1,#(0x3<<16)@[21L20]清0
    45. STR R1,[R0]
    46. @5.设置PE8管脚输出时没有上拉下拉电阻 GPIOE_PUPDR[21:20]->00 0X5000600C
    47. LDR R0,=0x5000600c
    48. LDR R1,[R0]
    49. BIC R1,R1,#(0x3<<16)@[21L20]清0
    50. STR R1,[R0]
    51. @1.设置GPIOF寄存器的时钟使能 RCC_MP_AHB4ENSETR[5]->1 0x50000a28
    52. LDR R0,=0X50000A28
    53. LDR R1,[R0] @从r0为起始地址的4字节数据取出放在R1
    54. ORR R1,R1,#(0x1<<5) @第4位设置为1
    55. STR R1,[R0] @写回
    56. @2.设置PF10管脚为输出模式 GPIOE_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. @3.设置PF10管脚为推挽输出 GPIOE_OTYPER[10]->0 0X50007004
    63. LDR R0,=0X50007004
    64. LDR R1,[R0]
    65. BIC R1,R1,#(0X1<<10)
    66. STR R1,[R0]
    67. @4.设置PF10管脚为低速输出 GPIOE_OSPEEDR[21:20]->00 0X50007008
    68. LDR R0,=0x50007008
    69. LDR R1,[R0]
    70. BIC R1,R1,#(0x3<<20)@[21L20]清0
    71. STR R1,[R0]
    72. @5.设置PF10管脚输出时没有上拉下拉电阻 GPIOE_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. @LED2亮灭交替
    93. @亮
    94. LDR R0,=0X50007014
    95. LDR R1,[R0]
    96. ORR R1,R1,#(0x1<<10)
    97. STR R1,[R0]
    98. BL delay
    99. @灭
    100. LDR R0,=0X50007014
    101. LDR R1,[R0]
    102. BIC R1,R1,#(0x1<<10)
    103. STR R1,[R0]
    104. BL delay
    105. @LED3亮灭交替
    106. @亮
    107. LDR R0,=0X50006014
    108. LDR R1,[R0]
    109. ORR R1,R1,#(0x1<<8)
    110. STR R1,[R0]
    111. BL delay
    112. @灭
    113. LDR R0,=0X50006014
    114. LDR R1,[R0]
    115. BIC R1,R1,#(0x1<<8)
    116. STR R1,[R0]
    117. BL delay
    118. b loop
    119. @封装延时函数
    120. delay:
    121. LDR R4,=0X10000000
    122. mm:
    123. cmp r4,#0
    124. subne r4,r4,#1
    125. bne mm
    126. mov pc,lr @程序返回
    127. .end

  • 相关阅读:
    计算机网络(概述)
    页面结构分析
    初始安装tp6,并启动项目
    Spark系列之Spark应用程序运行机制
    2024.6.2力扣刷题记录
    RocketMQ 5.0 vs 4.9.X 图解架构对比
    帆软报表中sql的模糊查询的用法
    文本处理技巧,Excel或csv转json
    Vue2项目练手——通用后台管理项目第四节
    【社媒营销】进来了解下Whatsapp Business API?出海群发不用愁!
  • 原文地址:https://blog.csdn.net/m0_70569664/article/details/133689039