[STM32F1] 急:求教stm32f103开关总中断怎么写?

[复制链接]
2371|9
 楼主| 无为之益 发表于 2014-6-3 17:58 | 显示全部楼层 |阅读模式
请教大家:stm32f103开关总中断怎么写?
用的UCOS-II操作系统,但用OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()编译时(用的 Keil uVision4编译器),
老报错说没定义这两函数,想改用stm32f103自身开关总中断,不知道怎么写。以前没用过STM32.
谢谢各位了!
mmuuss586 发表于 2014-6-3 19:26 | 显示全部楼层
EXTI_InitStructure.EXTI_LineCmd = DISABLE;      
      EXTI_Init(&EXTI_InitStructure);
简单点,就用库函数,要求高就操作相应寄存器

评分

参与人数 1威望 +3 收起 理由
无为之益 + 3 赞一个!

查看全部评分

colibri 发表于 2014-6-3 19:44 | 显示全部楼层
uCpuDisableInt
        CPSID   I
        BX      LR

uCpuEnableInt
        CPSIE   I
        BX      LR

评分

参与人数 1威望 +3 收起 理由
无为之益 + 3 很给力!

查看全部评分

Marco-Marco 发表于 2014-6-4 09:01 | 显示全部楼层
__set_PRIMASK(1)--关闭全局中断
__set_PRIMASK(0)--打开全局中断
----位于core_cm3.c中

评分

参与人数 1威望 +1 收起 理由
无为之益 + 1 赞一个!

查看全部评分

 楼主| 无为之益 发表于 2014-6-4 12:09 | 显示全部楼层
mmuuss586 发表于 2014-6-3 19:26
EXTI_InitStructure.EXTI_LineCmd = DISABLE;      
      EXTI_Init(&EXTI_InitStructure);
简单点,就用 ...

谢谢版主
 楼主| 无为之益 发表于 2014-6-4 12:10 | 显示全部楼层
colibri 发表于 2014-6-3 19:44
uCpuDisableInt
        CPSID   I
        BX      LR

非常感谢
mmuuss586 发表于 2014-6-4 12:12 | 显示全部楼层
无为之益 发表于 2014-6-4 12:09
谢谢版主


不客气
 楼主| 无为之益 发表于 2014-6-4 12:13 | 显示全部楼层
本帖最后由 无为之益 于 2014-6-4 12:14 编辑
Marco-Marco 发表于 2014-6-4 09:01
__set_PRIMASK(1)--关闭全局中断
__set_PRIMASK(0)--打开全局中断
----位于core_cm3.c中


谢谢,我这样写,好像也编译通过了,但测试不正确,不知道是否是关总中断引起了其他错误,还是没有真正正确地开关总中断,正在查找原因

__ASM void disable_all_interrupts(void) {

CPSID   I
    BX     LR
}

__ASM void enable_all_interrupts(void)
{
CPSIE   I
    BX     LR
}
 楼主| 无为之益 发表于 2014-7-16 16:18 | 显示全部楼层
mmuuss586 发表于 2014-6-3 19:26
EXTI_InitStructure.EXTI_LineCmd = DISABLE;      
      EXTI_Init(&EXTI_InitStructure);
简单点,就用 ...

不会结帖操作,请版主帮忙结帖分配给分吧,谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

36

主题

237

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部