This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

有没有LM4F120 的IIC例程 代码在那里 谢谢



如题

  • Hi Xiaoxu,

       在我们的tiva-ware或是最新的stellaris-ware里面的example文件下面有IIC例程的C文件。里面包含了IIC的应用函数。你可以自己建立一个工程,然后把源文件导进去。

    Ken

  • 补充一点。配置I2C是,要用如下函数:

    GPIOPinTypeI2CSCL(GPIO_PORTB_BASE,GPIO_PIN_2);
    GPIOPinTypeI2C(GPIO_PORTB_BASE, GPIO_PIN_3);

    详细的信息请参考芯片资料中对于SCL信号的描述。

    SCL配置不正确会导致功能不正常。

  • 你好!我的是这么配置的

    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);//使能GPIO
    SysCtlPeripheralEnable(SYSCTL_PERIPH_I2C0);//使能I2C0
    GPIOPinConfigure(GPIO_PB2_I2C0SCL);//配置GPIO引脚复用功能
    GPIOPinConfigure(GPIO_PB3_I2C0SDA);//配置GPIO引脚复用功能
    //GPIOPinTypeI2C(GPIO_PORTB_BASE,GPIO_PIN_2|GPIO_PIN_3);
    GPIOPinTypeI2C(GPIO_PORTB_BASE, GPIO_PIN_3);
    GPIOPinTypeI2CSCL(GPIO_PORTB_BASE, GPIO_PIN_2);
    // HWREG(I2C0_BASE + I2C_O_MCR);
    I2CMasterInitExpClk(I2C0_BASE,SysCtlClockGet(),false);//配置I2C0 时钟 传输速率 100k 0 100k

    写入的是

    add=ustrtoul(argv[1], 0,8);
    adddata=ustrtoul(argv[2],0,8);
    I2CMasterSlaveAddrSet(I2C0_BASE,0xa0,false);//true 主机从从机读出数据 false主机写入从机 数据
    I2CMasterDataPut(I2C0_BASE,add);//写入到从机的数据(地址)
    I2CMasterControl(I2C0_BASE,I2C_MASTER_CMD_SINGLE_SEND);
    while(I2CMasterBusy(I2C0_BASE));
    I2CMasterDataPut(I2C0_BASE,adddata);//写入到从机的数据(地址)
    I2CMasterControl(I2C0_BASE,I2C_MASTER_CMD_SINGLE_SEND);
    while(I2CMasterBusy(I2C0_BASE));
    UARTprintf("write......OK");

    存储器用的是24c02  不知到为什么就是写不进去

    不知道为什么有时候写好几次 才能有scl  或者 sda的 变化是因为 scl配置的不正确  

    HWREG(I2C0_BASE + I2C_O_MCR);句具体有什么用?  谢谢