From 6e24113e302a99f943d0040d075d67963e570689 Mon Sep 17 00:00:00 2001 From: zhyinch <zhyinch@gmail.com> Date: 星期四, 11 十一月 2021 18:00:55 +0800 Subject: [PATCH] I2C 改好 --- Drivers/ExternlDrivers/lis3dh_driver.c | 21 ++++++++++++++------- 1 files changed, 14 insertions(+), 7 deletions(-) diff --git a/Drivers/ExternlDrivers/lis3dh_driver.c b/Drivers/ExternlDrivers/lis3dh_driver.c index 7f92a91..efb87ff 100644 --- a/Drivers/ExternlDrivers/lis3dh_driver.c +++ b/Drivers/ExternlDrivers/lis3dh_driver.c @@ -68,11 +68,11 @@ { GPIO_InitTypeDef GPIO_InitStructure= {0}; __HAL_RCC_GPIOA_CLK_ENABLE(); - GPIO_InitStructure.Pin = GPIO_PIN_2|GPIO_PIN_3; + GPIO_InitStructure.Pin = SCL_Pin|SDA_Pin; GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_OD ; //推挽输出 GPIO_InitStructure.Speed = GPIO_SPEED_FREQ_HIGH; - HAL_GPIO_Init(GPIOA, &GPIO_InitStructure); - HAL_GPIO_WritePin(GPIOA,GPIO_PIN_2|GPIO_PIN_3,GPIO_PIN_SET); //PB6,PB7 输出高 + HAL_GPIO_Init(SCL_GPIO_Port, &GPIO_InitStructure); + HAL_GPIO_WritePin(SCL_GPIO_Port,SCL_Pin|SDA_Pin,GPIO_PIN_SET); //PB6,PB7 输出高 } @@ -83,17 +83,24 @@ uint8_t lisid,response; uint8_t lisidtemp; - LIS3DH_WriteReg(LIS3DH_CTRL_REG1, 0x37); /* CTRL_REG1(20h): ??sensor,???????? ODR 25HZ */ + LIS3DH_WriteReg(LIS3DH_CTRL_REG1, 0x57); /* CTRL_REG1(20h): ??sensor,???????? ODR 25HZ */ LIS3DH_WriteReg(LIS3DH_CTRL_REG2, 0x03); /* CTRL_REG2(21h): IA1?IA2 ?????? bc */ LIS3DH_WriteReg(LIS3DH_CTRL_REG3, 0x40); /* CTRL_REG3(22h): 0x80 ???????INT_1 INT_2 */ LIS3DH_WriteReg(LIS3DH_CTRL_REG4, 0x08); /* CTRL_REG4(23h): ???,????,???+/-2G,?????? */ LIS3DH_WriteReg(LIS3DH_INT1_CFG, 0xaa); /* INT1_CFG(30h): ??,6D X/Y/Z???????? */ - g_com_map[IMU_THRES]=2; + if(g_com_map[IMU_THRES]>20||g_com_map[IMU_THRES] == 0) + { + g_com_map[IMU_THRES] = 1; + } + if(g_com_map[IMU_DUARTION]>20||g_com_map[IMU_DUARTION]==0) + { + g_com_map[IMU_DUARTION] = 2; + } LIS3DH_WriteReg(LIS3DH_INT1_THS, (uint8_t)g_com_map[IMU_THRES]); /* INT1_THS(32h): ?????? 0x10: 16*2(FS) 0x20: 32*16(FS) */ - LIS3DH_WriteReg(LIS3DH_INT1_DURATION, 0x01); /* INT1_DURATION(33h): 1LSB=1/ODR ??ODR=100HZ ??1LSB=10ms ???? 1s,??100->0x64 */ + LIS3DH_WriteReg(LIS3DH_INT1_DURATION, (uint8_t)g_com_map[IMU_DUARTION]); /* INT1_DURATION(33h): 1LSB=1/ODR ??ODR=100HZ ??1LSB=10ms ???? 1s,??100->0x64 */ /* Start sensor */ - LIS3DH_WriteReg(0x20, 0x5f); /* CTRL_REG1(20h): Start sensor at ODR 100Hz Low-power mode */ + //LIS3DH_WriteReg(0x20, 0x5f); /* CTRL_REG1(20h): Start sensor at ODR 100Hz Low-power mode */ // Read ID LIS3DH_GetWHO_AM_I(&lisidtemp); // lisid=(uint16_t)lisidtemp; -- Gitblit v1.9.3