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狀態
|