This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

MSP432 处理器 的关闭全局中断的命令

Other Parts Discussed in Thread: MSP432WARE

请教TI工程师:

       MSP432处理器在 进行Flash时需要关闭中断  那有没有相MSP430那样禁止全局中断的指令啊~  我没有找到相关指令,麻烦请教

  • 自己搞定,原来和MSP430一样
    __disable_interrupt();
    __enable_interrupt();
  • 查看这个芯片的头文件,或库函数的头文件。
  • 或查看这个相关的视频教程
    edu.21ic.com/.../235.html
  • 可以的,代码定义在msp_compatibility.h中,如下所示

    #define __sleep() __wfi() #define __deep_sleep() { (*((volatile uint32_t *)(0xE000ED10))) |= 0x00000004; __wfi(); (*((volatile uint32_t *)(0xE000ED10))) and= ~0x00000004; } #define __low_power_mode_off_on_exit() { (*((volatile uint32_t *)(0xE000ED10))) &= ~0x00000002; } #define __get_SP_register() __get_MSP() #define __set_SP_register(x) __set_MSP(x) #define __get_interrupt_state() __get_PRIMASK() #define __set_interrupt_state(x) __set_PRIMASK(x) #define __enable_interrupt() __asm(" cpsie i") #define __enable_interrupts() __asm(" cpsie i") #define __disable_interrupt() __asm(" cpsid i") #define __disable_interrupts() __asm(" cpsid i") #define __no_operation() __asm(" nop")
     __disable_interrupt() 就是关闭所有中断了。
  • 如果使用msp432ware的库函数,可以查看D:\ti\msp\MSP432Ware_3_50_00_02\driverlib\driverlib\MSP432P4xx
    这个目录下的头文件,有一个中断相关的头文件,里面有操作指令。
  • 很高兴您能解决问题!

    __disable_interrupt()或_DINT()
    关闭总中断,无参数

    __enable_interrupt()或_EINT()
    开启总中断,无参数

    在下面的文档有相关说明

    Notice that the MSP432 header file also provides a translation layer to recreate similar intrinsics such as __enable_interrupts() or __sleep() mimicking MSP430 MCU's behavior yet stay functionally the same as the CMSIS intrinsics.

    www.ti.com/.../slaa656d.pdf