STM32读写ADXL345 中断功能
首先感谢网上朋友们的分享,我也贴出自己的源码,开源互助!
1、配置:可以换一个引脚,不知道为什么,总是要开始PC8和PC9相同配置,单片机才能进入中断,应该是单片机问题;
//ÖжÏÅäÖÃ
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);
}