找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1180|回復(fù): 0
收起左側(cè)

芯圣HC89F303單片機(jī)IIC通信問題,主機(jī)讀取從機(jī)數(shù)據(jù)該如何操作?

[復(fù)制鏈接]
ID:899421 發(fā)表于 2021-4-10 14:25 | 顯示全部樓層 |閱讀模式
1618026443(1).jpg 1618026343(1).jpg
/*******************************************************
主機(jī)給從機(jī)發(fā)送數(shù)據(jù)
*******************************************************/
void IIC_Send_Pack(unsigned char fuc_Data)
{
    /* Step1 */      
        IICCON &=~ 0x08;   
        IICCON |= 0x20;
        while((!(IICCON&0x08))&&(IICSTA!=0x08));
    /* Step2 */      
        IICCON &=~ 0x20;               
        IICCON &=~ 0x08;
        IICDAT = DEVICEADD;
        while((!(IICCON&0x08))&&(IICSTA!=0x18));
    /* Step3 */               
        IICCON &=~ 0x08;
        IICDAT = fuc_Data;
        while((!(IICCON&0x08))&&(IICSTA!=0x28));
        IICCON &=~ 0x08;  
        IICCON |= 0x10;
}

/***************************************************************************************
從機(jī)接收數(shù)據(jù)
***************************************************************************************/
void IIC_Rpt(void) interrupt IIC_VECTOR
{
    switch (IICSTA)
    {
        case 0x00:
                        IICCON |= 0x10;
            break;

        case 0x60:     
                        IICCON |= 0x04;                       
            break;
                              
        case 0x68:  
            while(1);
            break;

        case 0x80:  
            IIC_RED_BUF[IIC_CNT] = IICDAT;
                                                IIC_CNT++;
                                                IIC_DECODE_EN =1;
                                                if(IIC_CNT>6)
                                                {
                                                        IIC_CNT =0;
                                                        IIC_DECODE_EN =1;
                                                }
                                                IICCON|=0x04;
            break;

        case 0x88:
            IIC_RED_BUF[IIC_CNT] = IICDAT;
                                                IIC_CNT++;
                                                IIC_DECODE_EN =1;
                                                if(IIC_CNT>6)
                                                {
                                                        IIC_CNT =0;
                                                        IIC_DECODE_EN =1;
                                                }
                                                IICCON|=0x04;
            break;
        case 0xA8:
                                                IICDAT = temperature;
                                               
                                                IICCON|=0x04;
                                                break;
       case 0xB8:
                                                IICDAT = temperature;
                                               
                                                IICCON|=0x04;
                                                break;

       case 0xC0:
                                                IICCON|=0x04;
                                                break;

       case 0xC8:
                                                IICCON|=0x04;
                                                break;                                                      
    }
    IICCON&=~ 0x08;
}

請問主機(jī)讀取從機(jī)數(shù)據(jù)該如何操作
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表