硬件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"); ............以下程序先省略了 } |
测试标签123
IAR FOR ARM和IAR FOR STM8无法共存,
STM8L052,液晶内部电源怎么用?
STM8S103飞线外接芯片,I2C不能得到slaveAddress应答,通讯失败。
STM8S105C6T6 UART2串口,能接收数据,不能发送数据
STM8S105K4 串口2 无奇偶校验,也能接收 偶校验的 数据
在STM8S的IAP使用中断和APP使用中断问题
STM8L151 SMBUS设计
STM8S103F复位异常
STM8L的LCD调试时不亮
评分
查看全部评分