1、问题描述:初始化后读状态寄存器,始终为0.
2、相关寄存器信息。网上看到其他人的初始化程序,配置到0x18的寄存器地址。但我的版本寄存器地址最大就0x12
3、初始化程序,I2C可正常读写:
MDrv_IIC_WriteByte(WRITE_FM_NO, 0x00, 0x80); //复位
//MsOS_DelayTask(20);
MDrv_IIC_WriteByte(WRITE_FM_NO, 0x03, 0xc0); //选择时钟
MDrv_IIC_WriteByte(WRITE_FM_NO, 0x04,0xB3 ); //默认24M
MDrv_IIC_WriteByte(WRITE_FM_NO, 0x00, 0x40); //有限状态机校验
MsOS_DelayTask(20);
MDrv_IIC_WriteByte(WRITE_FM_NO, 0x00, 0x00); //有限状态机校验结束,回到normal
MDrv_IIC_WriteByte(WRITE_FM_NO, 0x10, 0x7F); //设置发射功率为最大值
MDrv_IIC_WriteByte(WRITE_FM_NO, 0x01, byteValue);
byteValue = (chValue >> 8) & 0x3; // 取高两位
MDrv_IIC_WriteByte(WRITE_FM_NO, 0x00, byteValue);
MDrv_IIC_WriteByte(WRITE_FM_NO, 0x01, 0xA9); // 1分钟无输入,关闭PA
retvalue = MDrv_IIC_ReadBytes(READ_FM_NO, 3, rAddr, 3, buff);
byteValue |= 0x20;
MDrv_IIC_WriteByte(WRITE_FM_NO, 0x00, byteValue); // 发射
发射后,读状态寄存器,还是为RESET状态
|