//############################################################################################################################################################################################################# #ifndef _INC_USART_COM_H_ #define _INC_USART_COM_H_ //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- #ifdef __cplusplus extern "C" { #endif //#include "stm32f4xx.h" #include #include //#include "SYSTEM.h" //#include "CUST_GPIO.h" //#include "TIMERS.h" #include "IDIBUS_DEFS.h" //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- #ifdef __ATmega328PB__ //Maybe move this #include "m328pb_defs.h" #endif // #ifdef _CPU_ATMEGA328PB_ #ifdef __ATmega1280__ #include "m2560_defs.h" #endif // _CPU_ATMEGA2560_ #ifdef __ATmega2560__ #include "m2560_defs.h" #endif // _CPU_ATMEGA2560_ #ifdef __ATmega128__ #include "m128_defs.h" #endif // _CPU_ATMEGA2560_ //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- typedef struct { volatile uint8_t *UCRSA; volatile uint8_t *UCRSB; volatile uint8_t *UCRSC; volatile uint8_t *UBRRL; volatile uint8_t *UBRRH; volatile uint8_t *UDR; } USART_TypeDef; //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- typedef struct { USART_TypeDef *USART; //DMA_Stream_TypeDef *DMATX; uint8_t *TX_BUF; uint8_t *RX_BUF; uint16_t TxBufCount; //uint16_t TxPacketSize; uint16_t TxSendedCount; uint16_t RxBufCount; volatile uint8_t TxComplete; uint8_t RxError; uint8_t RxComplete; uint16_t InterFrameTimeoutTicks; //Currently there are ticks for timer } USART_HANDLER_TYPE; //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- typedef struct { uint8_t TimerMode; uint16_t ResponseTimeoutUS; uint16_t AlarmTimeoutUS; volatile uint8_t ResponseTimeoutComplete; void (*SetIdiBusBoudrate)(enum IDIBUS_SERIAL_BAUDRATE); void (*RxAlarmFrameStart)(void); } USART_IDIBUS_ROUTINE_TYPE; //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- #ifdef __cplusplus } #endif #endif //_INC_USART_COM_H_ //#############################################################################################################################################################################################################