找回密码
 立即注册

QQ登录

只需一步,快速开始

打印 上一主题 下一主题
开启左侧

[M051] 求助 M058外部中断问题

[复制链接]
跳转到指定楼层
楼主
codysafe 发表于 2014-6-27 09:33:50 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
我自己的板子上P32、P33外部中断没反应。用论坛的初始化工具配置的不行,自己配置的也不行。其他引脚中断正常。P32~P35。每个端口都有几个做中断用的,就P32 P33不行。

P3->PMD |= 0x00000000;
P3->IEN |= 0x007C007C;


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 顶 踩
回复

使用道具 举报

板凳
 楼主| codysafe 发表于 2014-6-27 11:15:02 | 只看该作者
好了,谢谢。这算是对51的兼容么。弄两个专用的外部中断出来。
回复 支持 反对

使用道具 举报

沙发
a_ziliu 发表于 2014-6-27 10:09:36 | 只看该作者
m051的p32, p33是int 0, int 1中斷,是專用的中斷向量

建議使用bsp裡面的例子
M051_Series_BSP_CMSIS_Rev3.00.001\SampleCode\RegBased\GPIO_EINTAndDebounce

void EINT0_IRQHandler(void)
{
    /* For P3.2, clear the INT flag */
    P3->ISRC = BIT2;

    printf("P3.2 EINT0 occurred.\n");
}
void EINT1_IRQHandler(void)
{
    /* For P3.3, clear the INT flag */
    P3->ISRC = BIT3;

    printf("P3.3 EINT1 occurred.\n");
}

    SYS->P3_MFP |= (SYS_MFP_P30_RXD0 | SYS_MFP_P31_TXD0 | SYS_MFP_P32_INT0 | SYS_MFP_P33_INT1);
    /* Configure P3.2 as EINT0 pin and enable interrupt by falling edge trigger */
    P3->PMD = P3->PMD & (~GPIO_PMD_PMD2_Msk) | (GPIO_PMD_INPUT << GPIO_PMD_PMD2_Pos);
    P3->IMD |= (GPIO_IMD_EDGE << 2);
    P3->IEN |= (BIT2 << GPIO_IEN_IF_EN_Pos);
    NVIC_EnableIRQ(EINT0_IRQn);

    /* Configure P3.3 as EINT1 pin and enable interrupt by rising and falling edge trigger */
    P3->PMD = P3->PMD & (~GPIO_PMD_PMD3_Msk) | (GPIO_PMD_INPUT << GPIO_PMD_PMD3_Pos);
    P3->IMD |= (GPIO_IMD_EDGE << 3);
    P3->IEN |= ((BIT3 << GPIO_IEN_IR_EN_Pos) | (BIT3 << GPIO_IEN_IF_EN_Pos));
    NVIC_EnableIRQ(EINT1_IRQn);

回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

新唐MCU