0
我正在ESP8266上工作。我使用Arduino IDE直接通過FTDI進行編程。當同時發生GPIO和UART中斷或者UART發送或接收到事件時發生GPIO事件時,我遇到了堆棧問題。是否有可能在Arduino上設置中斷優先級?如何在Arduino中設置中斷優先級?
我正在ESP8266上工作。我使用Arduino IDE直接通過FTDI進行編程。當同時發生GPIO和UART中斷或者UART發送或接收到事件時發生GPIO事件時,我遇到了堆棧問題。是否有可能在Arduino上設置中斷優先級?如何在Arduino中設置中斷優先級?
Arduino中的Interrumpt具有無法更改的預定義優先級順序。這裏是:
1 Reset
2 External Interrupt Request 0 (pin D2) (INT0_vect)
3 External Interrupt Request 1 (pin D3) (INT1_vect)
4 Pin Change Interrupt Request 0 (pins D8 to D13) (PCINT0_vect)
5 Pin Change Interrupt Request 1 (pins A0 to A5) (PCINT1_vect)
6 Pin Change Interrupt Request 2 (pins D0 to D7) (PCINT2_vect)
7 Watchdog Time-out Interrupt (WDT_vect)
8 Timer/Counter2 Compare Match A (TIMER2_COMPA_vect)
9 Timer/Counter2 Compare Match B (TIMER2_COMPB_vect)
10 Timer/Counter2 Overflow (TIMER2_OVF_vect)
11 Timer/Counter1 Capture Event (TIMER1_CAPT_vect)
12 Timer/Counter1 Compare Match A (TIMER1_COMPA_vect)
13 Timer/Counter1 Compare Match B (TIMER1_COMPB_vect)
14 Timer/Counter1 Overflow (TIMER1_OVF_vect)
15 Timer/Counter0 Compare Match A (TIMER0_COMPA_vect)
16 Timer/Counter0 Compare Match B (TIMER0_COMPB_vect)
17 Timer/Counter0 Overflow (TIMER0_OVF_vect)
18 SPI Serial Transfer Complete (SPI_STC_vect)
19 USART Rx Complete (USART_RX_vect)
20 USART, Data Register Empty (USART_UDRE_vect)
21 USART, Tx Complete (USART_TX_vect)
22 ADC Conversion Complete (ADC_vect)
23 EEPROM Ready (EE_READY_vect)
24 Analog Comparator (ANALOG_COMP_vect)
25 2-wire Serial Interface (I2C) (TWI_vect)
26 Store Program Memory Ready (SPM_READY_vect)
如需更多信息,請參閱here。
請顯示您的中斷代碼。如果堆棧溢出,中斷優先級可能無法解決問題。 – tddguru
問題是堆棧清除其中的數據,當UART和GPIO中斷髮生在同一時間 –
然後我得到垃圾值txed數據。 –