在线时间17 小时
UID143835
注册时间2009-8-4
NXP金币0
该用户从未签到
注册会员

- 积分
- 115
- 最后登录
- 2020-8-27
|

楼主 |
发表于 2015-1-7 13:52:58
|
显示全部楼层
这个程序在aw32上面运行没问题,在ke02上面咋就不行了?求帮助,多谢!
总线10M,
速度设置 I2C0_F = (I2C_F_MULT(0x02) | I2C_F_ICR(0x08)); 即SCL 89k,sda 2.6微妙
具体如下
void I2C0_Init(void)
{
SIM_PINSEL |= SIM_PINSEL_IICPS_MASK;
SIM_SCGC |= SIM_SCGC_IIC_MASK; //打开I2C0模块时钟
/* I2C0_FLT: SHEN=0,STOPF=1,SSIE=0,STARTF=1,FLT=0 */
I2C0_FLT = (I2C_FLT_STOPF_MASK | IIC_FLT_STARTF_MASK | IIC_FLT_FLT(0x00));
/* I2C0_A1: AD=0,??=0 */
I2C0_A1 = I2C_A1_AD(0x00);
/* I2C0_C2: GCAEN=0,ADEXT=0,SBRC=1,RMEN=0,AD=0 */
I2C0_C2 = (uint8_t)((I2C0_C2 & (uint8_t)~(uint8_t)(
//I2C_C2_GCAEN_MASK |
I2C_C2_ADEXT_MASK |
I2C_C2_RMEN_MASK |
I2C_C2_AD(0x07)
)) | (uint8_t)(
I2C_C2_SBRC_MASK
));
/* I2C0_RA: RAD=0,??=0 */
I2C0_RA = I2C_RA_RAD(0x00);
/* I2C0_F: MULT=2,ICR=0x14 */
I2C0_F = (I2C_F_MULT(0x02) | I2C_F_ICR(0x08));
/* I2C0_A2: SAD=0x61,??=0 */
I2C0_A2 = I2C_A2_SAD(0x61);
/* I2C0_SMB: FACK=0,ALERTEN=0,SIICAEN=0,TCKSEL=0,SLTF=1,SHTF1=0,SHTF2=1,SHTF2IE=0 */
I2C0_SMB = (I2C_SMB_SLTF_MASK | I2C_SMB_SHTF2_MASK);
/* I2C0_SLTH: SSLT=0 */
I2C0_SLTH = I2C_SLTH_SSLT(0x00);
/* I2C0_SLTL: SSLT=0 */
I2C0_SLTL = I2C_SLTL_SSLT(0x00);
/* I2C0_S: TCF=0,IAAS=0,BUSY=0,ARBL=1,RAM=0,SRW=0,IICIF=1,RXAK=0 */
I2C0_S = (I2C_S_ARBL_MASK | I2C_S_IICIF_MASK);
/* I2C0_C1: IICEN=1,IICIE=0,MST=0,TX=0,TXAK=0,RSTA=0,WUEN=0 */
I2C0_C1 = (uint8_t)((I2C0_C1 & (uint8_t)~(uint8_t)(
//I2C_C1_IICIE_MASK |
//I2C_C1_MST_MASK |
I2C_C1_TX_MASK |
I2C_C1_TXAK_MASK |//使能I2C0自动应答信号
I2C_C1_RSTA_MASK |
I2C_C1_WUEN_MASK
)) | (uint8_t)(
I2C_C1_IICEN_MASK
));
I2C0_FLT |= 0x03;
/* I2C0_C1: MST=1 */
I2C0_C1 |= I2C_C1_MST_MASK;
} |
|