[原创] 基于PSOC6开发板模拟I2C 解X-NUCLEO-IKS01A3的LIS2DW12

DavidZH   2019-8-10 23:19 楼主

今天解析LIS2DW12, 模拟IIC接口,先验证ID:

 uint8_t LIS2DW12_Read_Date(uint8_t SlaveAddress, uint8_t RegAddress)
{
    uint8_t recvDate;
    uint8_t succ, stime=0;
    
    I2C_Start();
    succ = I2C_Send_Byte(SlaveAddress & 0xfe);
    while((succ !=1)&&(stime<3))
    {
        I2C_Stop();
        I2C_Start();
        succ = I2C_Send_Byte(SlaveAddress & 0xfe);  //写
        stime++;
    }
    I2C_Send_Byte(RegAddress);
    
    I2C_Start();
    I2C_Send_Byte(SlaveAddress | 0x01);  //读
    recvDate = I2C_Read_Byte(1);   //NACK
    I2C_Stop();
    return recvDate;
}


printf("PID_LSM2 = %X\r\n",LIS2DW12_Read_Date(LIS2DW12_ADD, 0x0F));

image.png

此内容由EEWORLD论坛网友DavidZH原创,如需转载或用于商业用途需征得作者同意并注明出处

补充内容 (2019-9-24 20:47): 附上工程

回复评论 (3)

附上工程,仅供参考;

PSOC6_IKS01A3_Code.zip (3.81 MB)
(下载次数: 17, 2019-9-24 20:51 上传)

点赞  2019-9-24 20:51

参考一下

点赞  2023-7-28 11:58
下载不了
点赞  2023-7-28 11:59
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复