STM32的USB模塊可以產生三種中斷:USB喚醒中斷、USB高優先級中斷和USB低優先級中斷,在STM32的參考手冊中沒有詳細說明這三種中斷對應哪些事件,現說明如下: 1)USB喚醒中斷:在中斷向量表中的位置是42。這個中斷在USB設備從暫停模式喚醒時產生,喚醒事件由USB_ISTR寄存器的WKUP位標識。 2)USB高優先級中斷:在中斷向量表中的位置是19。這個中斷僅由USB同步(Isochronous)模式傳輸或雙緩沖塊(Bulk)傳輸模式下的正確傳輸事件產生,正確傳輸事件由USB_ISTR寄存器的CTR位標識。 3)USB低優先級中斷:在中斷向量表中的位置是20。這個中斷由所有其它的USB事件產生,例如正確傳輸(不包括同步模式和雙緩沖塊模式)、USB復位等,事件標志位在USB_ISTR寄存器中。 在STM32的USB開發包的例子中包含了上述中斷的處理,例如在USB揚聲器的例子中,CTR_HP函數處理USB高優先級中斷;在所有例子中都有USB_Istr()函數處理USB低優先級中斷。 發表于2009/6/1 |