最近在用adxl345,进入不了中断,大家知道有什么问题吗?求解决呀

2019-07-21 02:44发布

以下是初始化的代码
u8 ADXL345_Init(void)
{                  
    IIC_Init();                            //初始化IIC总线    
    if(ADXL345_RD_Reg(DEVICE_ID)==0XE5)    //读取器件ID
    {  
        ADXL345_WR_Reg(DATA_FORMAT,0X1B);    //高电平中断输出,13位全分辨率,输出数据右对齐,16g量程
        ADXL345_WR_Reg(BW_RATE,0x0A);        //数据输出速度为100Hz
        //ADXL345_WR_Reg(POWER_CTL,0x28);           //链接使能,测量模式
        ADXL345_WR_Reg(INT_MAP,0x00);             //配置到中断引脚1上
        ADXL345_WR_Reg(THRESH_ACK,0x03);     //187.5mg
        ADXL345_WR_Reg(ACT_INACT_CTL,0xEE);    //轴使能
        ADXL345_WR_Reg(INT_ENABLE,0x10);    //activity中断开启

        ADXL345_WR_Reg(POWER_CTL,0x28);           //链接使能,测量模式

         ADXL345_WR_Reg(OFSX,0x00);
        ADXL345_WR_Reg(OFSY,0x00);
        ADXL345_WR_Reg(OFSZ,0x00);

        ADXL345_RD_Reg(0x2B);
        ADXL345_RD_Reg(0x30);

        printf("read ID success");    
        return 0;
    }            
    return 1;                                         
}  

GPIO外部中断引脚我配置成下拉输入,上升沿触发。
187.5/3.9=48,只要X轴的输出有48应该就可以触发外部中断了,可是一直进不去中断,大家知道问什么吗?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
ST-FAE-SALE
1楼-- · 2019-07-21 04:08
没看到你代码有触发中断的地方
fatiguer
2楼-- · 2019-07-21 08:29
 精彩回答 2  元偷偷看……
ST-FAE-SALE
3楼-- · 2019-07-21 10:43
你对应的是STM32的哪个端口,不一定是外部中断0的函数
开荤的唐僧
4楼-- · 2019-07-21 11:31
应该是选择直流耦合操作,而不是交流耦合操作。
也就是ADXL345_WR_Reg(ACT_INACT_CTL,0xEE);   这一句的0XEE改为0x60.
还有引脚的配置,应该是初始化为下拉输入,上升沿中断。试试看吧,我也想要这个结果,我自己做敲击中断也没出来结果,很烦躁。
名侦探
5楼-- · 2019-07-21 15:02
回复【5楼】开荤的唐僧:
---------------------------------
兄弟,你做出来了吗,我用了活动和敲击,2个都没进中断,不知道怎么回事
正点原子
6楼-- · 2019-07-21 17:42
你可以先测试下ADXL345的中断引脚,有没有波形,再去看MCU的中断配置对不对。

一周热门 更多>