问题:想用I2c中断的方式读取磁编码器,但是总是卡在 发送完7位地址后没有再产生中断;


看了看参考例程,没有采用这个方式的,想不出问题在哪里了;


程序大概逻辑:

1、产生起始位;

2、起始位发送完中断: 再发送7位地址

3、7位地址发送完中断:发送首个数据;? (此步总是未中断)


用逻辑分析仪查看 已经产生了地址应答,但之后SLC一直处于低;

?程序运行上 表现为 只进入了一次 起始位中断,没有再进入 “7位地址发送完”中断;



更新:查看了其他人关于?中断的帖子;发现中断声明需要添加?void?I2C1_ER_IRQHandler(void)?__attribute__((interrupt("WCH-Interrupt-fast")));
添加后就正常了