問題:想用I2c中斷的方式讀取磁編碼器,但是總是卡在 發(fā)送完7位地址后沒有再產(chǎn)生中斷;


看了看參考例程,沒有采用這個方式的,想不出問題在哪里了;


程序大概邏輯:

1、產(chǎn)生起始位;

2、起始位發(fā)送完中斷: 再發(fā)送7位地址

3、7位地址發(fā)送完中斷:發(fā)送首個數(shù)據(jù);? (此步總是未中斷)


用邏輯分析儀查看 已經(jīng)產(chǎn)生了地址應(yīng)答,但之后SLC一直處于低;

?程序運行上 表現(xiàn)為 只進(jìn)入了一次 起始位中斷,沒有再進(jìn)入 “7位地址發(fā)送完”中斷;



更新:查看了其他人關(guān)于?中斷的帖子;發(fā)現(xiàn)中斷聲明需要添加?void?I2C1_ER_IRQHandler(void)?__attribute__((interrupt("WCH-Interrupt-fast")));
添加后就正常了