搜索
查看: 1130|回复: 1

[求助] STM8S105K4硬件IIC卡死在发送起始信号,怎么破?

[复制链接]

该用户从未签到

1

主题

1

帖子

0

蝴蝶豆

新手上路

最后登录
2019-10-8
发表于 2019-10-4 18:33:34 | 显示全部楼层 |阅读模式
硬件IIC调试SHT30的
一开始卡在等待总线空闲,后查贴,①设置了option byte AFR6 ②在初始化里加了复位I2C->CR2 |= 0x80;等待总线空闲问题解决。
紧接着发送起始信号,通过串口打印信息发现 等待发送完成卡住了。没有发送启动信号,难道是硬件bug?还是有什么没设置到位的地方?
关键位置已用红字标识。求解救!
void I2C_Init(void)
{
   CLK->PCKENR1|=0x01;//使能IIC时钟
  I2C->CR1=0;   
  I2C->FREQR=16;//设置时钟为16m
  I2C->CCRL=0x50;//100khz的IIC速度
  I2C->CCRH=0x00;
  I2C->TRISER=0x11;//250ns上升时间
  /* Enable I2C */
  I2C->CR1 |= I2C_CR1_PE;  
  I2C->CR2 |= 0x80;//复位一下 用于去除busy
}
void Driver_I2CSend(u8 Address,u8 *DataBuff,u16 DataLen)
{         
  volatile u8 temp;//防止被优化而产生警告
  u16 time;  

  while(I2C->SR3&0x02)//等待总线空闲        
  printf("n1-------------!\n");//调试一开始卡在这,在初始化里加了   I2C->CR2 |= 0x80;这个位置就过了。  


  I2C->CR2 |= 0x01;//发送起始信号

  while((I2C->SR1&0x01)==0)//等待起始信号发送完毕,现在就卡在这了,卡了两天了求大神解救!
  printf("n2-----hhhh---------\n");  

  ............以下程序先省略了
}
回复

使用道具 举报

该用户从未签到

3

主题

1306

帖子

929

蝴蝶豆

版主

最后登录
2021-3-31
发表于 2019-10-8 15:05:43 | 显示全部楼层
外设库里有例程,跑一下例程吧。另外I2C注意连接的设备

评分

参与人数 1蝴蝶豆 +1 收起 理由
STMCU + 1

查看全部评分

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|论坛-意法半导体STM32/STM8技术社区

GMT+8, 2024-5-8 02:54 , Processed in 1.155776 second(s), 31 queries .

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表