一、硬件电路接口图片
1.ADXL345硬件接口图片使用的是SPI端口进行通信,这样读取数据比较快且后续也可以转化为IIC通信接口。
在网上找一些发现IIC接口的比较多,所以本人就DIY做SPI的通信。
2.STM32F103T系列单片机作为MCU 资源比较丰富、本人比较熟悉开发速度较快
硬件电路首先是为了实现功能,所以设计比较简单。后续小编想做无线蓝牙的数据传输,所以硬件上也留了蓝牙串口通信的硬件接口和3.3V电源管理。
暂且将硬件这样设计,设计为双层PCB 这样减少了空间。电容、电阻为0805的易焊接。器件都选为贴片。
二、单片机驱动代码
1.ADXL345的端口配置函数
#define ADXL345_FLAG_TIMEOUT ((uint32_t)0x1000)
#define ADXL345_SPI SPI1
#define ADXL345_SPI_CLK RCC_APB2Periph_SPI1
#define ADXL345_SPI_SCK_PIN GPIO_Pin_5
#define ADXL345_SPI_SCK_GPIO_PORT GPIOA
#define ADXL345_SPI_SCK_GPIO_CLK RCC_APB2Periph_GPIOA
#define ADXL345_SPI_SCK_SOURCE GPIO_PinSource5
#define ADXL345_SPI_SCK_AF GPIO_AF_5
#define ADXL345_SPI_MISO_PIN GPIO_Pin_6
#define ADXL345_SPI_MISO_GPIO_PORT GPIOA
#define ADXL345_SPI_MISO_GPIO_CLK RCC_APB2Periph_GPIOA
#define ADXL345_SPI_MISO_SOURCE GPIO_PinSource6
#define ADXL345_SPI_MISO_AF GPIO_AF_5
#define ADXL345_SPI_MOSI_PIN GPIO_Pin_7
#define ADXL345_SPI_MOSI_GPIO_PORT GPIOA
#define ADXL345_SPI_MOSI_GPI