STM32f103 读LIS302DL传感器X、Y、Z轴向寄存器
来源:互联网 发布:coc黑胖数据 编辑:程序博客网 时间:2024/04/19 12:18
/*
读LIS302DL传感器X、Y、Z轴向寄存器
*/
@main.c#include "stm32f10x.h"#include "lcd.h"#include "stdio.h"#include "main.h"#include "mems.h"#include "i2c.h"#include "math.h"u32 DelayTiming = 0;int main(void){ u8 str[20]; u8 *ptr; SysTick_Config(SystemCoreClock/1000); STM3210B_LCD_Init(); LCD_Clear(White); i2c_init(); LIS302DL_Config(); LCD_SetTextColor(White); LCD_SetBackColor(Blue); LCD_ClearLine(Line0); LCD_ClearLine(Line1); LCD_ClearLine(Line2); LCD_ClearLine(Line3); LCD_ClearLine(Line4); LCD_DisplayStringLine(Line1,(u8*)" MEMS DEMO "); // if(LIS302DL_Check() == 1){ LCD_DisplayStringLine(Line3, (u8 *)" MEMS STATUS: OK"); }else{ LCD_DisplayStringLine(Line3, (u8 *)" MEMS STATUS: ERROR"); } LCD_SetTextColor(Blue); LCD_SetBackColor(White); while(1){ ptr = Lis302DL_Output(); snprintf((char *)str, sizeof(str), " X Reg:%d ", ptr[0]); LCD_DisplayStringLine(Line6,str); snprintf((char *)str, sizeof(str), " Y Reg:%d ", ptr[1]); LCD_DisplayStringLine(Line7,str); snprintf((char *)str, sizeof(str), " Z Reg:%d ", ptr[2]); LCD_DisplayStringLine(Line8,str); Delay_Ms(200); }}//void Delay_Ms(u32 nTime){ DelayTiming = nTime; while(DelayTiming != 0);}
@mems.c#include "stm32f10x.h"#include "i2c.h"#include "mems.h"#include "main.h"u8 alz[3] ;//void LIS302DL_Write(unsigned char reg,unsigned char info){ I2CStart(); I2CSendByte(0x38); I2CWaitAck(); I2CSendByte(reg); I2CWaitAck(); I2CSendByte(info); I2CWaitAck(); I2CStop();}//uint8_t LIS302DL_Read(uint8_t address){ unsigned char val; I2CStart(); I2CSendByte(0x38); I2CWaitAck(); I2CSendByte(address); I2CWaitAck(); I2CStart(); I2CSendByte(0x39); I2CWaitAck(); val = I2CReceiveByte(); I2CSendNotAck(); I2CStop(); return(val);}//u8* Lis302DL_Output(void){ if((LIS302DL_Read(0x27) & 0x08) != 0){ alz[0] = (LIS302DL_Read(0x29)); //x alz[1] = (LIS302DL_Read(0x2B)); //y alz[2] = (LIS302DL_Read(0x2D)); //z } return alz;}//void LIS302DL_Config(void){ LIS302DL_Write(CTRL_REG1,0x47); LIS302DL_Write(CTRL_REG2,0x00); LIS302DL_Write(CTRL_REG3,0xC1); LIS302DL_Write(FF_WU_THS_1,0x28); LIS302DL_Write(FF_WU_DURATION_1,40); LIS302DL_Write(FF_WU_CFG_1,0x10); }//uint8_t LIS302DL_Check(void){ if(LIS302DL_Read(0x0f)){ return 1; }else{ return 0; }}
@mems.h#ifndef __MEMS_H#define __MEMS_H#include "stm32f10x.h"#define CTRL_REG1 0x20#define CTRL_REG2 0x21#define CTRL_REG3 0x22#define FF_WU_THS_1 0x32#define FF_WU_DURATION_1 0x33#define FF_WU_CFG_1 0x30#define STATUS_REG 0x27uint8_t LIS302DL_Check(void);void LIS302DL_Config(void);u8* Lis302DL_Output(void);#endif
@main.h#ifndef __MAIN_H#define __MAIN_Hvoid Delay_Ms(uint32_t nTime);#endif
0 0
- STM32f103 读LIS302DL传感器X、Y、Z轴向寄存器
- x > y ? y : x > z ? z : x;
- (X * Y) % Z
- x/y/z轴
- android手机 加速度传感器 获取x,y,z轴上的加速度
- X/Y/Z Modem区别
- z = 16*x + y
- DUMP(w[,x[,y[,z]]])
- 求(x-y+z)*2
- 计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值
- 加速度传感器中任意静止时刻任意角度下x,y,z方向上的加速度算法
- hdu4282 x^z+y^z+x*y*z=k 解的个数
- CATransform3DMakeRotation的x,y,z参数
- x+2*y+5*z = 100
- trimesh2沿x、y、z轴旋转
- 关于glRotatef(angle, x, y, z)函数
- CareerCup calculate (x^y)%z without pow();
- 输入x y z, 从小到大排序
- SSH学习——声明式事物管理(Spring)
- LINUX进程管理
- spring service 层调用service 层是否合理
- 设计模式:单例模式(十一)
- BZOJ 3714: [PA2014]Kuglarz kruskal
- STM32f103 读LIS302DL传感器X、Y、Z轴向寄存器
- mongodb安装和命令行基本操作
- 使用jquery easyui实现一个基本的页面布局
- Java clone方法详解
- Android之error: void value not ignored as it ought to be(In function 'callMethod2')解决办法
- man用法
- Angular开发必备的TypeScript基础
- 拓扑排序
- the difference between data mining and meachine learning