OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6161|回复: 10

为什么ADXL345加速度传感器活动中断无法进中断

[复制链接]

17

主题

102

帖子

0

精华

初级会员

Rank: 2

积分
191
金钱
191
注册时间
2014-10-14
在线时间
0 小时
发表于 2014-10-31 22:10:19 | 显示全部楼层 |阅读模式
5金钱
[mw_shl_code=c,true]u8 ADXL345_Init(void) { IIC_Init(); //初始化IIC总线 if(ADXL345_RD_Reg(DEVICE_ID)==0XE5) //读取器件ID { ADXL345_WR_Reg(DATA_FORMAT,0X2B); //低电平中断输出,13位全分辨率,输出数据右对齐,16g量程 ADXL345_WR_Reg(BW_RATE,0x0A); //数据输出速度为100Hz ADXL345_WR_Reg(POWER_CTL,0x28); //链接使能,测量模式 /* ADXL345_WR_Reg(THRESH_TAP,0x10); //设置冲击阈值 1g ADXL345_WR_Reg(DUR,0xFF); //时间范围 ADXL345_WR_Reg(Latent,0x00); //禁止双击功能 ADXL345_WR_Reg(TAP_AXES,0x01); //使能Z轴敲击 ADXL345_WR_Reg(INT_ENABLE,0x40); //使用单次冲击中断 ADXL345_WR_Reg(INT_MAP,0x00); //中断映射到INT1 */ ADXL345_WR_Reg(THRESH_ACK,0x10); // 设置活动阈值 1g ADXL345_WR_Reg(ACT_INACT_CTL,0x10); // 使能活动Z轴直流耦合 ADXL345_WR_Reg(INT_MAP,0xEF); //中断映射到INT1 ADXL345_WR_Reg(INT_ENABLE,0x10); //使用活动中断 ADXL345_WR_Reg(OFSX,0x00); ADXL345_WR_Reg(OFSY,0x00); ADXL345_WR_Reg(OFSZ,0x00); return 0; } return 1; } void EXTIX_Init(void) { EXTI_InitTypeDef EXTI_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOF,ENABLE);//使能PORTF时钟 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;//PF11 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //设置成上拉输入 GPIO_Init(GPIOF, &GPIO_InitStructure); KEY_Init(); // 按键端口初始化 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE); //使能复用功能时钟 GPIO_EXTILineConfig(GPIO_PortSourceGPIOF,GPIO_PinSource11); EXTI_InitStructure.EXTI_Line=EXTI_Line11; EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; //下升沿触发 EXTI_InitStructure.EXTI_LineCmd = ENABLE; EXTI_Init(&EXTI_InitStructure); //根据EXTI_InitStruct中指定的参数初始化外设EXTI寄存器 NVIC_InitStructure.NVIC_IRQChannel = EXTI15_10_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x02; //抢占优先级2, NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x03; //子优先级3 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //使能外部中断通道 NVIC_Init(&NVIC_InitStructure); } //外部中断0服务程序 void EXTI15_10_IRQHandler(void) { if(EXTI_GetITStatus(EXTI_Line11)==SET)//是11线的中断 { LED1=!LED1; LCD_ShowString(60,290,200,16,16,"ZhongDuan"); } EXTI_ClearITPendingBit(EXTI_Line11); } [/mw_shl_code]
在战舰开发版基础上改的活动中断,为什么触发不了呢?是不是ADXL345初始化哪里有什么问题?球大神讲解下。这个问题网上很多人都在问,一直没人解答

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-10-31 23:10:46 | 显示全部楼层
你先测试下ADXL345的中断引脚有没有输出中断信号?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

17

主题

102

帖子

0

精华

初级会员

Rank: 2

积分
191
金钱
191
注册时间
2014-10-14
在线时间
0 小时
 楼主| 发表于 2014-11-1 10:43:10 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
我用JTAG看了下,没有输出中断源,,检测了STM32的外部中断没有问题,肯定是初始化配置的问题。不知道初始化那里哪里没有配置对???
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-11-1 21:45:35 | 显示全部楼层
回复【3楼】名侦探:
---------------------------------
中断引脚上面,有波形了?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

17

主题

102

帖子

0

精华

初级会员

Rank: 2

积分
191
金钱
191
注册时间
2014-10-14
在线时间
0 小时
 楼主| 发表于 2014-11-3 15:50:12 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
有波形,现在能进中断了。不过,我把阈值设置成5g,只要给一个冲击还没有到5g,也能进中断,即使很小的冲击都能进中断,不知道这是怎么回事,阈值完全失效了?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-11-3 18:05:10 | 显示全部楼层
回复【5楼】名侦探:
---------------------------------
这就得慢慢查配置了,呵呵
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

17

主题

102

帖子

0

精华

初级会员

Rank: 2

积分
191
金钱
191
注册时间
2014-10-14
在线时间
0 小时
 楼主| 发表于 2014-11-3 18:17:49 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------
原子哥,也许我可能已经调出来了?我在中断中读取一次加速度值,这个加速度值偏小,是不是因为冲击的时候是瞬间发生的,近中段读数据的时候已经错过了最大值。会不会是这个原因呢?
还有,战舰开发板和桌子是直接接触碰撞,刚性碰撞,所以产生的加速度值比我想象的要大很多。
上面两个解释你觉得有没有道理呢?请原子哥明示。。。。。。。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-11-3 18:59:34 | 显示全部楼层
回复【7楼】名侦探:
---------------------------------
你轻轻的放试试。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

17

主题

102

帖子

0

精华

初级会员

Rank: 2

积分
191
金钱
191
注册时间
2014-10-14
在线时间
0 小时
 楼主| 发表于 2014-11-3 21:59:07 | 显示全部楼层
回复【8楼】正点原子:
---------------------------------
调成10g,轻轻放就不进中断,5g就进了。。。。。。。。。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-11-3 23:13:41 | 显示全部楼层
回复【9楼】名侦探:
---------------------------------
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

1

主题

42

帖子

0

精华

高级会员

Rank: 4

积分
523
金钱
523
注册时间
2016-4-6
在线时间
107 小时
发表于 2018-11-20 17:33:42 | 显示全部楼层
楼主能发份你改好的代码给我吗,我最近也在弄这个,谢谢,1163548340@qq.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-21 23:28

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表