TIwilliam hill官网
直播中

章伟

7年用户 176经验值
私信 关注
[问答]

28035如何驱动tm1650数码管

void I2CStart(void)    //开始信号
[
    CLK_H;
    DIO_H;            //5us
    DELAY_US(6);
    DIO_L;
]
void I2Cask(void) //ACK信号
[
    EALLOW;
    GpioCtrlRegs.GPBDIR.bit.GPIO32=0;//  input
    //GpioCtrlRegs.GPBPUD.bit.GPIO32=1;//  Pullup's enabled
    EDIS;
    Uint16 timeout = 1;
    CLK_H;
    DELAY_US(4);
    CLK_L;
    while(SDA &&(timeout<=100))
    [
      timeout++;
    ]
    DELAY_US(4);
    CLK_L;
]

//停止信号
void I2CStop(void) //停止信号
[
    CLK_H;
    DIO_L;
    DELAY_US(4);
    DIO_H;
]

//发送一个字节
void I2CWrByte(Uint16 oneByte) //写一个字节高位在前,低位在后
[
    unsigned char i;
    EALLOW;
    GpioCtrlRegs.GPBDIR.bit.GPIO32=1;//  output
    GpioCtrlRegs.GPBPUD.bit.GPIO32=1;//  Pullup's enabled
    EDIS;
    CLK_L;
    DELAY_US(2);
    for(i=0;i<8;i++)
    [

        if(oneByte & 0x0080)
        [
            SDA=1;
        ]
        else
        [
            SDA=0;
        ]
        oneByte = oneByte<<1;
        CLK_L;
        DELAY_US(4);
        CLK_H;
        DELAY_US(4);
        CLK_L;
    ]
]

51程序
void I2CStart(void)    //开始信号
[
    CLK_H;
    DIO_H;            //5ms
    _nop_();      
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    DIO_L;
   
]

void I2Cask(void) //ACK信号
[
    uchar timeout = 1;
    CLK_H;
    _nop_();
    _nop_();
    _nop_();
    CLK_L;
    while((DIO)&&(timeout<=100))
    [
      timeout++;   
    ]
    _nop_();
    _nop_();
    _nop_();
    CLK_L;
]

void I2CStop(void) //停止信号
[
    CLK_H;
    DIO_L;
    _nop_();
    _nop_();
    _nop_();
    DIO_H;
]

void I2CWrByte(uchar oneByte) //写一个字节高位在前,低位在后
[
    uchar i;
    CLK_L;
    _nop_();
    for(i=0;i<8;i++)
    [   
        oneByte = oneByte<<1;
        DIO = CY;
        CLK_L;
        _nop_();
        _nop_();
        _nop_();
        CLK_H;
        _nop_();
        _nop_();
        _nop_();
        CLK_L;
    ]
]

按照51单片机修改的DSP程序,可是为什么时序不对呢,响应信号中SDA一直为高,请问该怎么修改??

回帖(1)

冯敬宇

2020-5-29 08:19:54
建议你直接用I2C外设直接去驱动:
C:ticontrolSUITEdevice_supportf2803xv130DSP2803x_examples_ccsv5i2c_eeprom
ERIC
                                                                         - ERIC
举报

更多回帖

发帖
×
20
完善资料,
赚取积分