24 #ifndef __STM32F4_DISCOVERY_LIS302DL_H
25 #define __STM32F4_DISCOVERY_LIS302DL_H
55 uint8_t Output_DataRate;
64 uint8_t HighPassFilter_Data_Selection;
65 uint8_t HighPassFilter_CutOff_Frequency;
66 uint8_t HighPassFilter_Interrupt;
72 uint8_t Latch_Request;
73 uint8_t SingleClick_Axes;
74 uint8_t DoubleClick_Axes;
97 #define LIS302DL_FLAG_TIMEOUT ((uint32_t)0x1000)
102 #define LIS302DL_SPI SPI1
103 #define LIS302DL_SPI_CLK RCC_APB2Periph_SPI1
105 #define LIS302DL_SPI_SCK_PIN GPIO_Pin_5
106 #define LIS302DL_SPI_SCK_GPIO_PORT GPIOA
107 #define LIS302DL_SPI_SCK_GPIO_CLK RCC_AHB1Periph_GPIOA
108 #define LIS302DL_SPI_SCK_SOURCE GPIO_PinSource5
109 #define LIS302DL_SPI_SCK_AF GPIO_AF_SPI1
111 #define LIS302DL_SPI_MISO_PIN GPIO_Pin_6
112 #define LIS302DL_SPI_MISO_GPIO_PORT GPIOA
113 #define LIS302DL_SPI_MISO_GPIO_CLK RCC_AHB1Periph_GPIOA
114 #define LIS302DL_SPI_MISO_SOURCE GPIO_PinSource6
115 #define LIS302DL_SPI_MISO_AF GPIO_AF_SPI1
117 #define LIS302DL_SPI_MOSI_PIN GPIO_Pin_7
118 #define LIS302DL_SPI_MOSI_GPIO_PORT GPIOA
119 #define LIS302DL_SPI_MOSI_GPIO_CLK RCC_AHB1Periph_GPIOA
120 #define LIS302DL_SPI_MOSI_SOURCE GPIO_PinSource7
121 #define LIS302DL_SPI_MOSI_AF GPIO_AF_SPI1
123 #define LIS302DL_SPI_CS_PIN GPIO_Pin_3
124 #define LIS302DL_SPI_CS_GPIO_PORT GPIOE
125 #define LIS302DL_SPI_CS_GPIO_CLK RCC_AHB1Periph_GPIOE
127 #define LIS302DL_SPI_INT1_PIN GPIO_Pin_0
128 #define LIS302DL_SPI_INT1_GPIO_PORT GPIOE
129 #define LIS302DL_SPI_INT1_GPIO_CLK RCC_AHB1Periph_GPIOE
130 #define LIS302DL_SPI_INT1_EXTI_LINE EXTI_Line0
131 #define LIS302DL_SPI_INT1_EXTI_PORT_SOURCE EXTI_PortSourceGPIOE
132 #define LIS302DL_SPI_INT1_EXTI_PIN_SOURCE EXTI_PinSource0
133 #define LIS302DL_SPI_INT1_EXTI_IRQn EXTI0_IRQn
135 #define LIS302DL_SPI_INT2_PIN GPIO_Pin_1
136 #define LIS302DL_SPI_INT2_GPIO_PORT GPIOE
137 #define LIS302DL_SPI_INT2_GPIO_CLK RCC_AHB1Periph_GPIOE
138 #define LIS302DL_SPI_INT2_EXTI_LINE EXTI_Line1
139 #define LIS302DL_SPI_INT2_EXTI_PORT_SOURCE EXTI_PortSourceGPIOE
140 #define LIS302DL_SPI_INT2_EXTI_PIN_SOURCE EXTI_PinSource1
141 #define LIS302DL_SPI_INT2_EXTI_IRQn EXTI1_IRQn
153 #define LIS302DL_WHO_AM_I_ADDR 0x0F
184 #define LIS302DL_CTRL_REG1_ADDR 0x20
222 #define LIS302DL_CTRL_REG2_ADDR 0x21
245 #define LIS302DL_CTRL_REG3_ADDR 0x22
255 #define LIS302DL_HP_FILTER_RESET_REG_ADDR 0x23
285 #define LIS302DL_STATUS_REG_ADDR 0x27
293 #define LIS302DL_OUT_X_ADDR 0x29
301 #define LIS302DL_OUT_Y_ADDR 0x2B
309 #define LIS302DL_OUT_Z_ADDR 0x2D
340 #define LIS302DL_FF_WU_CFG1_REG_ADDR 0x30
372 #define LIS302DL_FF_WU_SRC1_REG_ADDR 0x31
383 #define LIS302DL_FF_WU_THS1_REG_ADDR 0x32
391 #define LIS302DL_FF_WU_DURATION1_REG_ADDR 0x33
422 #define LIS302DL_FF_WU_CFG2_REG_ADDR 0x34
454 #define LIS302DL_FF_WU_SRC2_REG_ADDR 0x35
465 #define LIS302DL_FF_WU_THS2_REG_ADDR 0x36
473 #define LIS302DL_FF_WU_DURATION2_REG_ADDR 0x37
502 #define LIS302DL_CLICK_CFG_REG_ADDR 0x38
531 #define LIS302DL_CLICK_SRC_REG_ADDR 0x39
540 #define LIS302DL_CLICK_THSY_X_REG_ADDR 0x3B
549 #define LIS302DL_CLICK_THSZ_REG_ADDR 0x3C
557 #define LIS302DL_CLICK_TIMELIMIT_REG_ADDR 0x3D
565 #define LIS302DL_CLICK_LATENCY_REG_ADDR 0x3E
573 #define LIS302DL_CLICK_WINDOW_REG_ADDR 0x3F
579 #define LIS302DL_SENSITIVITY_2_3G 18
580 #define LIS302DL_SENSITIVITY_9_2G 72
585 #define LIS302DL_DATARATE_100 ((uint8_t)0x00)
586 #define LIS302DL_DATARATE_400 ((uint8_t)0x80)
594 #define LIS302DL_LOWPOWERMODE_POWERDOWN ((uint8_t)0x00)
595 #define LIS302DL_LOWPOWERMODE_ACTIVE ((uint8_t)0x40)
603 #define LIS302DL_FULLSCALE_2_3 ((uint8_t)0x00)
604 #define LIS302DL_FULLSCALE_9_2 ((uint8_t)0x20)
612 #define LIS302DL_SELFTEST_NORMAL ((uint8_t)0x00)
613 #define LIS302DL_SELFTEST_P ((uint8_t)0x10)
614 #define LIS302DL_SELFTEST_M ((uint8_t)0x08)
622 #define LIS302DL_X_ENABLE ((uint8_t)0x01)
623 #define LIS302DL_Y_ENABLE ((uint8_t)0x02)
624 #define LIS302DL_Z_ENABLE ((uint8_t)0x04)
625 #define LIS302DL_XYZ_ENABLE ((uint8_t)0x07)
633 #define LIS302DL_SERIALINTERFACE_4WIRE ((uint8_t)0x00)
634 #define LIS302DL_SERIALINTERFACE_3WIRE ((uint8_t)0x80)
642 #define LIS302DL_BOOT_NORMALMODE ((uint8_t)0x00)
643 #define LIS302DL_BOOT_REBOOTMEMORY ((uint8_t)0x40)
651 #define LIS302DL_FILTEREDDATASELECTION_BYPASSED ((uint8_t)0x00)
652 #define LIS302DL_FILTEREDDATASELECTION_OUTPUTREGISTER ((uint8_t)0x20)
660 #define LIS302DL_HIGHPASSFILTERINTERRUPT_OFF ((uint8_t)0x00)
661 #define LIS302DL_HIGHPASSFILTERINTERRUPT_1 ((uint8_t)0x04)
662 #define LIS302DL_HIGHPASSFILTERINTERRUPT_2 ((uint8_t)0x08)
663 #define LIS302DL_HIGHPASSFILTERINTERRUPT_1_2 ((uint8_t)0x0C)
671 #define LIS302DL_HIGHPASSFILTER_LEVEL_0 ((uint8_t)0x00)
672 #define LIS302DL_HIGHPASSFILTER_LEVEL_1 ((uint8_t)0x01)
673 #define LIS302DL_HIGHPASSFILTER_LEVEL_2 ((uint8_t)0x02)
674 #define LIS302DL_HIGHPASSFILTER_LEVEL_3 ((uint8_t)0x03)
683 #define LIS302DL_INTERRUPTREQUEST_NOTLATCHED ((uint8_t)0x00)
684 #define LIS302DL_INTERRUPTREQUEST_LATCHED ((uint8_t)0x40)
692 #define LIS302DL_CLICKINTERRUPT_XYZ_DISABLE ((uint8_t)0x00)
693 #define LIS302DL_CLICKINTERRUPT_X_ENABLE ((uint8_t)0x01)
694 #define LIS302DL_CLICKINTERRUPT_Y_ENABLE ((uint8_t)0x04)
695 #define LIS302DL_CLICKINTERRUPT_Z_ENABLE ((uint8_t)0x10)
696 #define LIS302DL_CLICKINTERRUPT_XYZ_ENABLE ((uint8_t)0x15)
704 #define LIS302DL_DOUBLECLICKINTERRUPT_XYZ_DISABLE ((uint8_t)0x00)
705 #define LIS302DL_DOUBLECLICKINTERRUPT_X_ENABLE ((uint8_t)0x02)
706 #define LIS302DL_DOUBLECLICKINTERRUPT_Y_ENABLE ((uint8_t)0x08)
707 #define LIS302DL_DOUBLECLICKINTERRUPT_Z_ENABLE ((uint8_t)0x20)
708 #define LIS302DL_DOUBLECLICKINTERRUPT_XYZ_ENABLE ((uint8_t)0x2A)
719 #define LIS302DL_CS_LOW() GPIO_ResetBits(LIS302DL_SPI_CS_GPIO_PORT, LIS302DL_SPI_CS_PIN)
720 #define LIS302DL_CS_HIGH() GPIO_SetBits(LIS302DL_SPI_CS_GPIO_PORT, LIS302DL_SPI_CS_PIN)
736 void LIS302DL_Write(uint8_t* pBuffer, uint8_t WriteAddr, uint16_t NumByteToWrite);
737 void LIS302DL_Read(uint8_t* pBuffer, uint8_t ReadAddr, uint16_t NumByteToRead);
748 uint32_t LIS302DL_TIMEOUT_UserCallback(
void);
void LIS302DL_Read(uint8_t *pBuffer, uint8_t ReadAddr, uint16_t NumByteToRead)
Reads a block of data from the LIS302DL.
Definition: stm32f4_discovery_lis302dl.c:291
void LIS302DL_FullScaleCmd(uint8_t FS_value)
Change the Full Scale of LIS302DL.
Definition: stm32f4_discovery_lis302dl.c:217
void LIS302DL_DataRateCmd(uint8_t DataRateValue)
Data Rate command.
Definition: stm32f4_discovery_lis302dl.c:194
CMSIS Cortex-M4 Device Peripheral Access Layer Header File. This file contains all the peripheral reg...
void LIS302DL_ReadACC(int32_t *out)
Read LIS302DL output register, and calculate the acceleration ACC[mg]=SENSITIVITY* (out_h*256+out_l)/...
Definition: stm32f4_discovery_lis302dl.c:326
void LIS302DL_FilterConfig(LIS302DL_FilterConfigTypeDef *LIS302DL_FilterConfigStruct)
Set LIS302DL Internal High Pass Filter configuration.
Definition: stm32f4_discovery_lis302dl.c:121
Definition: stm32f4_discovery_lis302dl.h:62
void LIS302DL_Init(LIS302DL_InitTypeDef *LIS302DL_InitStruct)
Set LIS302DL Initialization.
Definition: stm32f4_discovery_lis302dl.c:99
Definition: stm32f4_discovery_lis302dl.h:70
void LIS302DL_InterruptConfig(LIS302DL_InterruptConfigTypeDef *LIS302DL_InterruptConfigStruct)
Set LIS302DL Interrupt configuration.
Definition: stm32f4_discovery_lis302dl.c:147
void LIS302DL_LowpowerCmd(uint8_t LowPowerMode)
Change the lowpower mode for LIS302DL.
Definition: stm32f4_discovery_lis302dl.c:171
Definition: stm32f4_discovery_lis302dl.h:52
void LIS302DL_RebootCmd(void)
Reboot memory content of LIS302DL.
Definition: stm32f4_discovery_lis302dl.c:237
void LIS302DL_Write(uint8_t *pBuffer, uint8_t WriteAddr, uint16_t NumByteToWrite)
Writes one byte to the LIS302DL.
Definition: stm32f4_discovery_lis302dl.c:257