久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 8296|回復: 3
打印 上一主題 下一主題
收起左側

求肋BK1080收音模塊讀不出數據

[復制鏈接]
跳轉到指定樓層
樓主
ID:146949 發表于 2017-5-4 17:43 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
收音IC型號: BK1080-SOP16
   器件地址:0x80
我用STC15W4K58S4來驅動BK1080收音模塊,I2C低層是用之前驅動RDA5820的數據來修改.
SDA和SCL都沒有接錯,也有4K7上拉電阻。
現在一直讀不出數據,讀寄存0x00~0xFF都沒有數據。在邏輯儀上看偶爾出現有顯示0x7F。
求助,有人用過這個芯片嗎?

void I2C_Start()//I2C起始信號
{
    IIC_SDA = 1;                    //拉高數據線
    IIC_SCL = 1;                    //拉高時鐘線
    Delayus(5);
    IIC_SDA = 0;                    //產生下降沿
Delayus(5);
    IIC_SCL = 0;                    //拉低時鐘線
}
void I2C_Stop()//I2C停止信號
{
    IIC_SDA = 0;              //拉低數據線
    IIC_SCL = 1;              //拉高時鐘線
    Delayus(5);
    IIC_SDA = 1;              //產生上升沿
    Delayus(5);
}
bit IIC_RecvACK()//接收應答信號
{
    IIC_SCL = 1;                    //拉高時鐘線
    Delayus(5);                 //延時
    CY = IIC_SDA;                   //讀應答信號
    IIC_SCL = 0;                    //拉低時鐘線
    Delayus(5);                 //延時
    return CY;
}
void I2C_SendByte(uchar dat)//向I2C總線發送一個字節數據
{
    unsigned char i;
    for (i=0; i<8; i++)         //8位計數器
    {
        dat <<= 1;              //移出數據的最高位
        IIC_SDA = CY;               //送數據口
        IIC_SCL = 1;                //拉高時鐘線
        Delayus(5);             //延時
        IIC_SCL = 0;                //拉低時鐘線
        Delayus(5);             //延時
    }
    IIC_RecvACK();
}
uchar I2C_RecvByte(void)//從I2C總線接收一個字節數據
{
    unsigned char i;
    unsigned char dat = 0;
    IIC_SDA = 1;                    //使能內部上拉,準備讀取數據,
    for (i=0; i<8; i++)         //8位計數器
    {
        dat <<= 1;
        IIC_SCL = 1;                //拉高時鐘線
        Delayus(5);             //延時
        dat |= IIC_SDA;             //讀數據               
        IIC_SCL = 0;                //拉低時鐘線
        Delayus(5);             //延時
    }
    return dat;
}
void Single_WriteI2C_FM(uchar REG_Address,uint REG_data)//向I2C設備寫入2個字節數據
{
    I2C_Start();                  //起始信號
    I2C_SendByte(0x80);           //發送設備地址+寫信號
    I2C_SendByte(REG_Address);    //內部寄存器地址,
I2C_SendByte(REG_data>>8);//取高位,類似定時器的TH0=(65536-1000)/256;
    I2C_SendByte(REG_data&0xFF);//取低位,類似定時器的TL0=(65536-1000)%256;
    I2C_Stop();                   //發送停止信號
}
uint Single_ReadI2C_FM(uchar REG_Address)//從I2C設備讀取一個字節數據
{
unsigned int buf;
I2C_Start();
I2C_SendByte(0x80);
I2C_SendByte(REG_Address);   
I2C_Start();
I2C_SendByte(0x80+1);
buf = I2C_RecvByte();
buf<<=8;
IIC_SDA = 0;  
IIC_SCL = 1;  
Delayus(5);
IIC_SCL = 0;  
Delayus(5);  
IIC_SDA = 1;
buf |= I2C_RecvByte();
IIC_SDA = 1;  
IIC_SCL = 1;  
Delayus(5);
IIC_SCL = 0;  
Delayus(5);  
IIC_SDA = 0;
I2C_Stop();         //發送停止信號
return buf;
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:72088 發表于 2022-1-31 17:39 | 只看該作者
我在找中文資料,沒找到
回復

使用道具 舉報

板凳
ID:625730 發表于 2022-2-1 11:09 | 只看該作者
感覺樓主的I2C指令可能有問題。
回復

使用道具 舉報

地板
ID:824490 發表于 2022-2-2 00:14 | 只看該作者
新鄉家電維修 發表于 2022-1-31 17:39
我在找中文資料,沒找到

BK1080E數據手冊 v1.1.pdf (842.98 KB, 下載次數: 31)
剛好我有。以前供應商送的5個SOP8的,從沒用過,后來用的是BK1079,簡單點的,免MCU的。

評分

參與人數 1黑幣 +15 收起 理由
迎風凌亂 + 15 贊一個!

查看全部評分

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 97久久精品午夜一区二区 | 成人av免费在线观看 | 性色网站 | 国产农村一级国产农村 | 日韩在线观看中文字幕 | 国产乱一区二区三区视频 | 中文字幕高清av | 天天久久 | 久久成人18免费网站 | 五月天天丁香婷婷在线中 | 午夜视频在线观看视频 | 超碰av在线| 中国一级特黄真人毛片免费观看 | 亚洲一区二区av在线 | 欧美成人精品在线观看 | 中文字幕在线一区二区三区 | 日韩精品久久久久久 | 欧美自拍视频 | 国产激情免费视频 | 日韩在线欧美 | 国产在线高清 | 日本不卡免费新一二三区 | 日韩成人免费 | 91久久久久久 | 成人在线 | 国产精品一区二区三区久久久 | 日韩视频在线播放 | 日韩精品免费看 | 久久高清国产 | 人人性人人性碰国产 | 人人九九精 | av毛片 | 黄色中文字幕 | 欧美极品在线 | 久久丝袜| 福利视频一区 | avtt国产 | 国产免费又色又爽又黄在线观看 | 久久久久久久国产精品影院 | 91人人在线 | 91精品一区二区三区久久久久 |