毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> 嵌入式 >> 正文

msp430f5438硬件i2c初始化以后设置UCB0CTL1 |= UCTXSTT+UCTR 都没有起始信号呢

更新时间:2012-11-2:  来源:毕业论文
    
  UCB0I2CSA = (seven_bit_addr);// & 0x7f);

   
#endif
  uint8_t index = 0;

  while (txlen--)
  {
 
  while (!(UCB0IFG & UCTXIFG)); // Block until byte is transferred from TXBUF to shift reg.
   
  if(txlen == 0)
  {
  UCB0CTL1 |= UCTXSTP;
  UCB0IFG &= ~UCTXIFG;
  }
  //UCB0TXBUF = *temp; // Write data to TXBUF
  if(iic_tx_byte_rx_ack(*temp) == TRUE)
  {
  temp++;
  }
  else
  {
  return FALSE;
  }
  }

  while (!(UCB0IFG & UCTXIFG)); // Block until byte is transferred from TXBUF to shift reg.

  // I2C stop condition
  //UCB0CTL1 |= UCTXSTP;

  // Clear USCI_B0 TX int flag
  // UCB0IFG &= ~UCTXIFG;

  iicBusy = NO;
  return TRUE;
}
设备地址我已经右移了一位了,再说即使我设备地址弄错,最多是写不进设备,但是读芯片的管脚上应该还是有相应的起始信号的吧。

设置UCSWRST后,SDA和SCL都会保持高电平采购流程 ,可是为什么UCB0CTL1 |= UCTXSTT+UCTR这样设置后SDA数据线并没有电平变化,并没有产生起始信号,USBBUSY一直为高。
现在已经有信号的,但是起始条件那里的时钟少了一位,地址7位加一个读写位,再加一个应答位,应该有9位的,但是我现在在写数据前,只读到了8位,那个应答位没读,但是之后写数据都有应答位。请问起始条件后的那个应答位的时钟为什么会丢失?
我STT位置1后,一直等待从设备应答把STT清0,可是一直都没有变化。

上一页  [1] [2] 

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。