在这论坛学到很多知识,为了回报,贡献出我调试好的代码,STM32F0 iic协议驱动adxl345,串口打印数据
单片机源程序如下:
- #include "include.h"
- #include "iic.h"
- #include "adxl345.h"
- #include "stm32f0xx.h"
- #include "stm32f0_discovery.h"
- #include "usart.h"
- #include "oled.h"
- int main(void)
- {
- short x,y,z;
- int angx,angy,angz;
- delay_init();
- USART_Configuration();
- I2C_INIT();
- while(ADXL345_Init())
- {
- USART1_SendString("传感器初始失败\r\n");
- }
-
- USART1_SendString("传感器初始化成功\r\n");
- USART1_SendString("正在校准……\r\n");
- ADXL345_AUTO_Adjust(&x, &y, &z);//自动校准
- while (1)
- {
- ADXL345_RD_XYZ(&x, &y,&z);
- angx=ADXL345_Get_Angle(x,y,z,1);
- angy=ADXL345_Get_Angle(x,y,z,2);
- angz=ADXL345_Get_Angle(x,y,z,0);
- USART1_SendString("\r\nAngx=");
- USART1_SendNum(angx);
- USART1_SendString("\tAngy=");
- USART1_SendNum(angy);
- USART1_SendString("\tAngz=");
- USART1_SendNum(angz);
- ADXL345_RD_XYZ(&x, &y,&z);
- USART1_SendString("\tGx=");
- USART1_SendNum2(-x*3.9);
- USART1_SendString("\tGy=");
- USART1_SendNum2(-y*3.9);
- USART1_SendString("\tGz=");
- USART1_SendNum2(z*3.9);
-
- delay_ms(100);
-
- }
- }
复制代码
所有资料51hei提供下载:
stm32f0 adxl345.7z
(192.71 KB, 下载次数: 70)
|