[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初始化哪里有什么问题?球大神讲解下。这个问题网上很多人都在问,一直没人解答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
---------------------------------
你轻轻的放试试。
---------------------------------
额
一周热门 更多>