• ARM-流水灯


    1. .text
    2. .global _start
    3. _start:
    4. @1、设置GPIOE寄存器的时钟使能 RCC_MP_AHB$ENSETR[4]->1 0x50000a28
    5. LDR R0,=0X50000A28
    6. LDR R1,[R0] @从R0起始地址的4字节数据取出放在R1
    7. ORR R1,R1,#(0X3<<4) @第4位设置为1
    8. STR R1,[R0] @写回
    9. @2、设置PE10、PE8、PF10管脚为输出模式 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. BIC R1,R1,#(0x3<<16)
    15. ORR R1,R1,#(0x1<<16)
    16. STR R1,[R0]
    17. LDR R0,=0X50007000
    18. LDR R1,[R0]
    19. BIC R1,R1,#(0x3<<20) @[21L20] 清0
    20. ORR R1,R1,#(0x1<<20) @设置
    21. STR R1,[R0]
    22. @3、设置PE10、PE8、PF10脚为推挽输出 GPIOE_OTYPER[10]->0 0x50006004
    23. LDR R0,=0x50006004
    24. LDR R1,[R0]
    25. BIC R1,R1,#(0x1<<10)
    26. BIC R1,R1,#(0x1<<8)
    27. STR R1,[R0]
    28. LDR R0,=0x50007004
    29. LDR R1,[R0]
    30. BIC R1,R1,#(0x1<<10)
    31. STR R1,[R0]
    32. @4、设置PE10、PE8、PF10脚为低速输出 GPIOE_OSPEEDR[21:20]->00 0x50006008
    33. LDR R0,=0X50006008
    34. LDR R1,[R0]
    35. BIC R1,R1,#(0x3<<20)
    36. BIC R1,R1,#(0x3<<16)
    37. STR R1,[R0]
    38. LDR R0,=0x50007008
    39. LDR R1,[R0]
    40. BIC R1,R1,#(0x3<<20)
    41. STR R1,[R0]
    42. @5、设置PE10、PE8、PF10脚输出时没有上拉下拉电阻 GPIOE_PUPDR[21:20]->00 0X5000600C
    43. LDR R0,=0X5000600C
    44. LDR R1,[R0]
    45. BIC R1,R1,#(0x3<<20)
    46. BIC R1,R1,#(0x3<<16)
    47. STR R1,[R0]
    48. LDR R0,=0x5000700C
    49. LDR R1,[R0]
    50. BIC R1,R1,#(0x3<<20)
    51. STR R1,[R0]
    52. @6、PE10输出高低电平 GPIOE_ODR[10]->1(高电平)o(低电平) 0X50006014
    53. @LED1亮灭交替
    54. LOOP:
    55. @LD1亮
    56. LDR R0,=0X50006014
    57. LDR R1,[R0]
    58. ORR R1,R1,#(0X1<<10)
    59. STR R1,[R0]
    60. BL delay
    61. @LD1灭
    62. LDR R0,=0X50006014
    63. LDR R1,[R0]
    64. BIC R1,R1,#(0X1<<10)
    65. STR R1,[R0]
    66. BL delay
    67. @LD2亮
    68. LDR R0,=0X50007014
    69. LDR R1,[R0]
    70. ORR R1,R1,#(0X1<<10)
    71. STR R1,[R0]
    72. BL delay
    73. @LD2灭
    74. LDR R0,=0X50007014
    75. LDR R1,[R0]
    76. BIC R1,R1,#(0X1<<10)
    77. STR R1,[R0]
    78. BL delay
    79. @LD3亮
    80. LDR R0,=0X50006014
    81. LDR R1,[R0]
    82. ORR R1,R1,#(0X1<<8)
    83. STR R1,[R0]
    84. BL delay
    85. @LD3灭
    86. LDR R0,=0X50006014
    87. LDR R1,[R0]
    88. BIC R1,R1,#(0X1<<8)
    89. STR R1,[R0]
    90. BL delay
    91. B LOOP
    92. @封装延时函数
    93. delay:
    94. LDR R3,=0x10000000
    95. mm:
    96. CMP R3,#0
    97. SUBNE R3,R3,#1
    98. BNE mm
    99. MOV PC,LR @程序返回
    100. .end

    现象:

  • 相关阅读:
    关于tcp发送成功但对端无法接收情况的思考
    C语言,从联合看字节序
    Jupyter NoteBook 中使用 cv2.imshow 显示图片
    法学行政法论文选题有哪些?
    外包干了2个月,技术退步明显了...
    数字信号处理MATLAB作业
    企业级存储详解与存储资源盘活
    基于SSM的北京集联软件科技有限公司信息管理系统
    【PostgreSQL启动,停止命令(重启)】
    【微信小程序】6天精准入门(第4天:自定义组件及案例界面)附源码
  • 原文地址:https://blog.csdn.net/Lychee_z23/article/details/133689345