打印
[STM32F1]

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

[复制链接]
2108|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 赞一个!
5
无为之益|  楼主 | 2014-6-4 12:09 | 只看该作者
mmuuss586 发表于 2014-6-3 19:26
EXTI_InitStructure.EXTI_LineCmd = DISABLE;      
      EXTI_Init(&EXTI_InitStructure);
简单点,就用 ...

谢谢版主

使用特权

评论回复
6
无为之益|  楼主 | 2014-6-4 12:10 | 只看该作者
colibri 发表于 2014-6-3 19:44
uCpuDisableInt
        CPSID   I
        BX      LR

非常感谢

使用特权

评论回复
7
mmuuss586| | 2014-6-4 12:12 | 只看该作者
无为之益 发表于 2014-6-4 12:09
谢谢版主


不客气

使用特权

评论回复
8
无为之益|  楼主 | 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
}

使用特权

评论回复
9
无为之益|  楼主 | 2014-7-16 16:18 | 只看该作者
mmuuss586 发表于 2014-6-3 19:26
EXTI_InitStructure.EXTI_LineCmd = DISABLE;      
      EXTI_Init(&EXTI_InitStructure);
简单点,就用 ...

不会结帖操作,请版主帮忙结帖分配给分吧,谢谢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

36

主题

237

帖子

1

粉丝