| | |
| | | AxesRaw_t lis2dhdata; |
| | | |
| | | //OLED初始化IIC |
| | | uint8_t t11; |
| | | void IIC2_Init(void) |
| | | { |
| | | // GPIO_InitTypeDef GPIO_InitStructure= {0}; |
| | |
| | | |
| | | gpio_pin_set_dir(SDA_PIN , GPIO_DIR_OUT, 1); |
| | | io_open_drain_set(SDA_PIN, 1); |
| | | io_pull_set(SDA_PIN , IO_PULL_UP, IO_PULL_UP_NONE);//输出高阻态 |
| | | io_pull_set(SDA_PIN , IO_HIGH_Z, IO_PULL_UP_NONE);//输出高阻态 |
| | | |
| | | gpio_pin_set_dir(SCL_PIN , GPIO_DIR_OUT, 1); |
| | | io_open_drain_set(SCL_PIN, 1);//设置开漏输出 |
| | | io_pull_set(SCL_PIN , IO_PULL_UP, IO_PULL_UP_NONE); |
| | | |
| | | |
| | | io_pull_set(SCL_PIN , IO_HIGH_Z, IO_PULL_UP_NONE); |
| | | } |
| | | |
| | | uint8_t lisid; |
| | |
| | | LIS3DH_WriteReg(LIS3DH_INT1_CFG, 0xaa); /* INT1_CFG(30h): ??,6D X/Y/Z???????? */ |
| | | g_com_map[IMU_THRES]=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, 0x01); /* 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 */ |
| | | |
| | |
| | | //等待应答信号到来 |
| | | //返回值:1,接收应答失败 |
| | | // 0,接收应答成功 |
| | | |
| | | uint8_t IIC2_Wait_Ack(void) |
| | | { |
| | | uint8_t ucErrTime=0; |
| | | // IIC2_SDA_IN(); //SDA设置为输入 |
| | | gpio_pin_set_dir(SDA_PIN , GPIO_DIR_IN, 1); |
| | | SDA_1; |
| | | delay_us(6); |
| | | SCL_1; |
| | | delay_us(6); |
| | | |
| | | |
| | | while(IIC2_READ_SDA) |
| | | { |
| | | ucErrTime++; |
| | |
| | | return 1; |
| | | } |
| | | } |
| | | gpio_pin_set_dir(SDA_PIN , GPIO_DIR_OUT, 1); |
| | | SCL_0;//时钟输出0 |
| | | return 0; |
| | | } |