|
stm32用IIC讀RDA5807M里面的03H寄存器數(shù)據(jù)跟剛寫進(jìn)去的數(shù)據(jù)不一致,但其他寄存器讀出來(lái)的數(shù)據(jù)跟前一次寫進(jìn)去的數(shù)據(jù)一致,檢查了IIC時(shí)序,感覺沒問題,都是按照數(shù)據(jù)手冊(cè)弄的。我嘗試了把寫數(shù)據(jù)進(jìn)03H寄存器跟讀03H寄存器時(shí)間間隔延長(zhǎng),一直到1秒,但調(diào)試的結(jié)果讀取的數(shù)據(jù)還是0x4FC0,我嘗試再寫不一樣的數(shù)據(jù)到RDA5807M的03H寄存器,結(jié)果返回的數(shù)據(jù)還是0x4FC0。這個(gè)往03H寄存器寫數(shù)據(jù)讀取出錯(cuò)的問題困擾了我兩天了,但很奇怪其他寄存器讀取的數(shù)據(jù)是正確的。麻煩弄過RDA5807M的大佬結(jié)合經(jīng)驗(yàn)提下建議,謝謝。ㄏ旅娴暮瘮(shù)就是驗(yàn)證IIC從RDA5807M讀取數(shù)據(jù)是否正確)
void rda5807Init(void )
{
unsigned int temp;
WriteReg(RDA_R02,0x0002); //軟件復(fù)位
Delay_ms(50);
temp = ReadReg(RDA_R02);
WriteReg(RDA_R02,0xd281); // 晶振選擇32.768Khz 向上搜索重低音立體聲
Delay_ms (50);
temp = ReadReg(RDA_R02);
WriteReg(RDA_R03,0x0500); //頻率設(shè)為87.5MHz ,步進(jìn)100Khz 頻帶為87M~108M
// Delay_ms (50);
// temp = ReadReg(RDA_R03);
// WriteReg(RDA_R03,0x0d00); //頻率設(shè)為88.3MHz ,步進(jìn)100Khz 頻帶為87M~108M
Delay_ms (50);
temp = ReadReg(RDA_R03);
WriteReg(RDA_R04,0x0040); //基本配置
Delay_ms (20);
temp = ReadReg(RDA_R04);
WriteReg(RDA_R05,0X8886); //音量設(shè)置為vol=6 搜索閥值為8
Delay_ms (20);
temp = ReadReg(RDA_R05);
FM_enable(1);
}
|
|