@far @interrupt void UART2_RX_IRQHandler(void) { u8 c; if (UART2_GetFlagStatus(UART2_FLAG_RXNE) != RESET) { /* Read one byte from the receive data register */ c = UART2_ReceiveData8(); CharDecode( c ); } }
@far @interrupt void UART2_RX_IRQHandler(void) { u8 c; if (UART2_GetFlagStatus(UART2_FLAG_RXNE) != RESET) { /* Read one byte from the receive data register */ c = UART2_ReceiveData8(); if (EncodeNMEA( c )) { // process new gps info here } } }
void mod_int_rx() { uint16_t crc; uint8_t val; if (UART2_GetITStatus(UART2_IT_RXNE) == SET) { UART2_ClearFlag (UART2_FLAG_RXNE); if (modFrame.rxCursor < (sizeof(modFrame.rxframe) - 1)) { modFrame.rxframe[modFrame.rxCursor] = UART2_ReceiveData8(); modFrame.rxCursor ++; setFrameCheck(MOD_TIMER_START); } else { //buffer is over setTimeoutCheck(MOD_TIMER_STOP); setFrameCheck(MOD_TIMER_STOP); modFrame.modState = Mod_State_ProcessReply; modFrame.rxBufOver = TRUE; } } if (UART2_GetITStatus(UART2_IT_OR) == SET) { //sr = UART2->SR; //sr = UART2->DR; UART2_ClearFlag (UART2_FLAG_RXNE); UART2_ClearITPendingBit(UART2_IT_RXNE); val = UART2->SR; val = UART2->DR; modFrame.modState = Mod_State_ProcessReply; setTimeoutCheck(MOD_TIMER_STOP); setFrameCheck(MOD_TIMER_STOP); modFrame.rxOver = TRUE; } }
* @brief UART2 RX interrupt routine. * @par Parameters: * None * @retval * None */ #ifdef _COSMIC_ @far @interrupt void UART2_RX_IRQHandler(void) #else /* _RAISONANCE_ */ void UART2_RX_IRQHandler(void) interrupt 21 #endif /* _COSMIC_ */ { /* In order to detect unexpected events during development, it is recommended to set a breakpoint on the following instruction. */ printf( "%c", UART2_ReceiveData8() ); } #endif /* STM8S105*/ #if defined(STM8S207) || defined(STM8S208) /** * @brief UART3 TX interrupt routine. * @par Parameters: * None * @retval * None */ #ifdef _COSMIC_ @far @interrupt void UART3_TX_IRQHandler(void) #else /* _RAISONANCE_ */ void UART3_TX_IRQHandler(void) interrupt 20