• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

STM32里的空指令

Spirit 2018-11-04 浏览量:2977

51里可以用_nop()作为空函数

怎么我在STM32里用不成?

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • stm32中空指令不是_nop(),而是__nop(),是双下划线。
    • 发布于 2018-11-05
    • 举报
    • 评论 0
    • 1
    • 0

其他答案 数量:12
  • 51是51,arm是arm不一样的地方多了,这些内容可以从内核头文件看到。


    包含 cmsis_armcc.h


    然后可以自定义如下

    #define NOP1()  __NOP()
    #define NOP2()  NOP1();NOP1()
    #define NOP3()  NOP2();NOP1()
    #define NOP4()  NOP3();NOP1()
    #define NOP5()  NOP4();NOP1()
    #define NOP6()  NOP5();NOP1()
    #define NOP7()  NOP6();NOP1()
    #define NOP8()  NOP7();NOP1()
    #define NOP9()  NOP8();NOP1()

    • 发布于2018-11-04
    • 举报
    • 评论 0
    • 2
    • 0

  • 自己封装一个,或者用while循环代替也行。空指令啥作用也没有,随便写点代码耗着cpu就行
    • 发布于2018-11-04
    • 举报
    • 评论 0
    • 0
    • 0

  • arm指令和51不同,短延时可以用while阻塞来实现
    • 发布于2018-11-04
    • 举报
    • 评论 0
    • 0
    • 0

  • 只需要包含它对应的头文件就可以,或者你可以自己定义一个类似的指令当做空指令
    • 发布于2018-11-05
    • 举报
    • 评论 0
    • 0
    • 0

  • 两者的空指令是不一样的,楼上正解。

    • 发布于2018-11-05
    • 举报
    • 评论 0
    • 0
    • 0

  • 空指令吗 可以用符号 ; 代替

    正确的应该是 __nop();

    • 发布于2018-11-05
    • 举报
    • 评论 0
    • 0
    • 0

  • STM32的空指令是__nop();,注意开始的那里是两条下划线
    • 发布于2018-11-24
    • 举报
    • 评论 0
    • 0
    • 0

  • __nop();才是32用的,有两根下划线在前面。
    • 发布于2018-11-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 当然是可以用的,这个是__nop();才是STM32的空语句
    • 发布于2018-11-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 一般用nop就是空指令,可以作为延时使用
    • 发布于2018-12-12
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

STM32里的空指令