LM4F120 IIC 24C02读出的数据都是FF

2019-03-24 12:03发布

求助        这些天一直在弄iic  现在都快疯了
   程序的框架用了  qs—rgb        下面写的是读出数据  不知道为什么读出来的都是FF;
  1. int CMD_read(int argc, char **argv)
  2. {
  3.         uint32_t add,adddata;
  4.         if(argc==2)
  5.         {
  6.                 add=ustrtoul(argv[1], 0, 16);
  7.                 if(true==I2CMasterBusy(I2C0_BASE))
  8.                 {
  9.                         UARTprintf("busy ");
  10.                 }
  11.                 else
  12.                 {
  13.                         UARTprintf("no busy ");
  14.                 }

  15.                 I2CMasterSlaveAddrSet(I2C0_BASE,0xa0,true);//true 主机从从机读出数据   false主机写入从机 数据
  16.                 I2CMasterDataPut(I2C0_BASE,0x00);//写入到从机的数据(地址)
  17.                 UARTprintf(">%x ",add);

  18.         I2CMasterControl(I2C0_BASE,I2C_MASTER_CMD_SINGLE_SEND);//I2C_MASTER_CMD_BURST_SEND_START;
  19.         adddata=I2CMasterDataGet(I2C0_BASE);//从主机模块获取从机的数据
  20.         UARTprintf(">%d ",I2CMasterErr(I2C0_BASE));
  21.         UARTprintf(">%x ",adddata);
  22.                 return (0);
  23.         }
  24. }
复制代码IIC初始化
  1. void ConfigureI2C(void)
  2. {
  3.         SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);//使能GPIO
  4.         SysCtlPeripheralEnable(SYSCTL_PERIPH_I2C0);//使能I2C0
  5.         GPIOPinConfigure(GPIO_PB2_I2C0SCL);//配置GPIO引脚复用功能
  6.         GPIOPinConfigure(GPIO_PB3_I2C0SDA);//配置GPIO引脚复用功能
  7.         //GPIOPinTypeI2C(GPIO_PORTB_BASE,GPIO_PIN_2|GPIO_PIN_3);
  8.         GPIOPinTypeI2C(GPIO_PORTB_BASE, GPIO_PIN_3);
  9.         GPIOPinTypeI2CSCL(GPIO_PORTB_BASE, GPIO_PIN_2);
  10.     HWREGB(I2C0_BASE + I2C_O_MCR);这句不知道该不该用   试了一下用和不用的结果好像都是一样的
  11.         I2CMasterInitExpClk(I2C0_BASE,SysCtlClockGet(),false);//配置I2C0 时钟    传输速率 100k    0   100k     1   400k

  12. }
复制代码 此帖出自小平头技术问答
0条回答

一周热门 更多>

相关问题

    相关文章