STM32读写ADXL345 中断功能

首先感谢网上朋友们的分享,我也贴出自己的源码,开源互助!

1、配置:可以换一个引脚,不知道为什么,总是要开始PC8和PC9相同配置,单片机才能进入中断,应该是单片机问题;

STM32读写ADXL345 中断功能

STM32读写ADXL345 中断功能

STM32读写ADXL345 中断功能

 

    //ÖжÏÅäÖÃ

    ADXL345_WriteByte(DATA_FORMAT    ,    0x29);  delay345_ms(200);    //Êä³öµÍµçƽÖжϣ¬13bit·Ö±æÂÊ    
    ADXL345_WriteByte(BW_RATE            , 0x09);        delay345_ms(100);     //Õý³£¹¦ÂÊ 50HzÊä³ö  ´ø¿í25Hz    
    ADXL345_WriteByte(POWER_CTL        , 0x00);  delay345_ms(100);    //½øÈëstandby mode    
    ADXL345_WriteByte(POWER_CTL        , 0x28);  delay345_ms(100);    //²âÁ¿Ä£Ê½  ²»»á×Ô¶¯Ë¯Ãß    //ÖÐ¶ÏµÍµçÆ½
    
    ADXL345_WriteByte(INT_ENABLE,0x00);  delay345_ms(200);    //¹Ø±ÕÖжÏ
    
    
    ADXL345_WriteByte(0x24,0x02);  delay345_ms(200);        //¼¤»î˯ÃßactivityãÐÖµ,´óÓÚʱ´¥·¢Öжϣ¬2 - 2g
    ADXL345_WriteByte(0x25,0x02);  delay345_ms(200);        //˯Ãß¿ªÊ¼ãÐÖµ£¬×îСֵ£¬02 - 0.1g
//    ADXL345_WriteByte(0x26,0x02);  delay345_ms(200);        //СÓÚinactivityÖµ³¬Ê±£¬½øÈë˯Ãߣ¬02 - 2Ãë
//    ADXL345_WriteByte(0x27,0xCC);  delay345_ms(200);        //Ö±Á÷½»Á÷´¥·¢ÅäÖã¬XYZʹÄÜ´¥·¢ÅäÖ㬴˴¦Ñ¡X½»Á÷
    ADXL345_WriteByte(0x27,0xFF);  delay345_ms(200);        //Ö±Á÷½»Á÷´¥·¢ÅäÖã¬XYZʹÄÜ´¥·¢ÅäÖ㬴˴¦Ñ¡XYZ½»Á÷
//    ADXL345_WriteByte(0x2F,0x10);  delay345_ms(200);        //ÖжÏÒý½Åµ½ INT2 ÉÏ
    
    ADXL345_WriteByte(0x2e,0xFF);  delay345_ms(200);        //¿ªÖжϠ   

    uint8_t re_value =0;
    
    if(HAL_GPIO_ReadPin(ADXL345_INT1_GPIO_Port, ADXL345_INT1_Pin) == GPIO_PIN_RESET)
    {

        re_value = ADXL345_ReadByte(0x30);        //Çå³ý±êÖ¾
        printf("\n ADXL345 1: %x \n",re_value);
    }