问答对人有帮助,内容完整,我也想知道答案
0
利用STM32CubeMX生成的keil项目如何关闭全局中断?中断相关的函数在哪个头文件里?
如何关闭系统滴答定时器中断
0
2024-5-16 07:52:22
评论
淘帖0
邀请回答
您可以邀请以下用户,快速回答问题
×
heks
该类别下有 54 个回答。
邀请回答
hgimtk
该类别下有 45 个回答。
邀请回答
新星之火12138
该类别下有 43 个回答。
邀请回答
chm5
该类别下有 42 个回答。
邀请回答
wang21cj
该类别下有 41 个回答。
邀请回答
hjfjsdgfjdsf
该类别下有 38 个回答。
邀请回答
werywer
该类别下有 36 个回答。
邀请回答
fdjslkjd
该类别下有 35 个回答。
邀请回答
uvysdfydad
该类别下有 35 个回答。
邀请回答
h1654155957.9520
该类别下有 35 个回答。
邀请回答
dfzvzs
该类别下有 34 个回答。
邀请回答
维生素B2
该类别下有 34 个回答。
邀请回答
凤毛麟角
该类别下有 34 个回答。
邀请回答
jenny042
该类别下有 34 个回答。
邀请回答
江左盟
该类别下有 34 个回答。
邀请回答
lining870815844
该类别下有 33 个回答。
邀请回答
hfgdzc
该类别下有 33 个回答。
邀请回答
ggfvxv
该类别下有 33 个回答。
邀请回答
wenminglang
该类别下有 33 个回答。
邀请回答
刘洋
该类别下有 33 个回答。
邀请回答
举报
宜家
相关推荐
• 在Keil uVision项目中使用STM32CubeMX 6.1.0时代码生成失败怎么处理?
688
• 为什么利用STM32cubeMX生成项目总是失败,有哪些原因?
801
• 请问如何阻止STM32Cubemx为特定处理程序生成代码?
510
• 如何去编写STM32CubeMX生成的Keil工程代码呢
1607
• 为什么STM32CubeMX带FreeRTOS生成 Keil工程的程序无法下载运行呢
2138
• 如何利用STM32CubeMX外部中断实现按键按一次变化一次?
1429
• 使用STM32CubeMX将STM32F407VGTX基本项目传输到Keil uVision5,但项目文件未正确传输怎么解决?
525
• 如何使用STM32CubeMX生成外部中断初始代码?
1130
• 使用stm32cubeMX无法生成mdk工程文件?
4157
• 如何利用STM32CubeMX去生成STM32F429初始化代码呢
1111
提交评论
2个回答
答案对人有帮助,有参考价值
0
关闭全局中断函数是__enable_irq();,,,在头文件core_cmFunc.h中
2024-5-16 10:54:13
评论
举报
景芳
提交评论
答案对人有帮助,有参考价值
0
要利用STM32CubeMX生成的Keil项目关闭全局中断,您需要执行以下步骤:
1. 首先,确保您已经安装了STM32CubeMX和Keil MDK-ARM。
2. 使用STM32CubeMX生成您的项目。在STM32CubeMX中,选择您的STM32微控制器型号,配置所需的外设和中断。
3. 生成项目后,打开生成的Keil MDK-ARM项目。
4. 在Keil项目中,找到中断相关的头文件。通常,这些文件位于STM32CubeMX生成的源代码文件夹中,例如`Drivers/CMSIS/Device/ST/STM32xxxxxx/Include`。对于STM32F1系列,全局中断控制函数在`core_cm3.h`或`core_cm3.c`中;对于STM32F4系列,全局中断控制函数在`core_cm4.h`或`core_cm4.c`中。
5. 要关闭全局中断,您可以使用`__disable_irq()`宏(对于STM32F1系列)或`__disable_fault_irq()`宏(对于STM32F4系列)。这些宏分别位于`core_cm3.h`和`core_cm4.h`中。
6. 在您的代码中,找到需要关闭全局中断的位置。例如,您可以在临界区(需要保护的代码段)之前调用这些宏。示例代码如下:
```c
void critical_section(void)
{
__disable_irq(); // 关闭全局中断(STM32F1系列)
// 或者
__disable_fault_irq(); // 关闭全局中断(STM32F4系列)
// 临界区代码
__enable_irq(); // 启用全局中断(STM32F1系列)
// 或者
__enable_fault_irq(); // 启用全局中断(STM32F4系列)
}
```
7. 如何关闭系统滴答定时器中断:
要关闭系统滴答定时器(SysTick)中断,您需要修改SysTick的中断使能位。以下是如何操作的示例:
```c
void disable_systick_interrupt(void)
{
// 清除SysTick中断使能位
SysTick->CTRL &= ~SysTick_CTRL_TICKINT_Msk;
}
```
请注意,关闭全局中断可能会影响系统的实时性能。因此,在执行关键操作时,应尽可能减少全局中断的禁用时间。
总之,要关闭STM32CubeMX生成的Keil项目的全局中断,您需要在适当的位置使用`__disable_irq()`或`__disable_fault_irq()`宏,并在完成关键操作后使用`__enable_irq()`或`__enable_fault_irq()`宏重新启用中断。对于系统滴答定时器中断,您可以通过修改SysTick的中断使能位来禁用它。
2024-5-16 18:14:45
评论
举报
陈敏
提交评论
只有小组成员才能发言,加入小组>>