25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

26 lines
897 B

  1. #ifndef __MODBUS_REC_SEND_H
  2. #define __MODBUS_REC_SEND_H
  3. #include "stm32f4xx.h"
  4. #include "modbus_parse.h"
  5. typedef enum ModbusRxStateType
  6. {
  7. MODBUS_RX_RECEIVING = 0, /*正在正常接收*/
  8. MODBUS_RX_CHECK_T15, /*等待第一次DMA检查,判断新字符是否在t1.5前开始*/
  9. MODBUS_RX_CHECK_T35, /*等待第二次DMA检查,判断t1.5~t3.5是否出现字符*/
  10. MODBUS_RX_DISCARD, /*当前帧已经确认错误,继续丢弃后续数据*/
  11. MODBUS_RX_DISCARD_CHECK_T35 /*已收到错误帧的IDLE,等待连续t3.5静默*/
  12. }MODBUS_RX_STATE;
  13. int8_t ChcekCrc16(uint16_t recCrc16, uint8_t *data, uint16_t length);
  14. void AddCrc16(uint8_t *data, uint16_t length);
  15. void ModbusSend(uint8_t *txBuf, uint16_t len);
  16. void TimOff(void);
  17. void TimRestart(uint32_t timArr);
  18. void ModbusParseWakeUp(void);
  19. void ModbusDmaRestart(void);
  20. #endif