rs485.h
上传用户:sanfwan_06
上传日期:2007-12-18
资源大小:190k
文件大小:1k
源码类别:

串口编程

开发平台:

C/C++

  1. #separate
  2. char Rs485Process(void);
  3. void Rs485Initialise(char cAddrHigh, char cAddrLow);
  4. #separate
  5. char Rs485Decode( void );
  6. void Rs485UpdateCrc(char cVal );
  7. void CRC16_Init( void );
  8. void CRC16_Update4Bits( char val );
  9. void Rs485SendPacket( char cCmd, char cLen, char *cData );
  10. void Rs485GetPacket( char *cCom, char *cLen, char *cData );
  11. void Rs485SendChar( char c );
  12. char PostValidatePacket(void);
  13. char PacketHasPayload(void);
  14. void BinToHexAscii( char c );
  15. #define NULL 0
  16. // Configurables
  17. #define RS485_CONTROL PORTC
  18. #define OUTPUTS_ON 5
  19. #define NUM_TX_PREAMBLE 3
  20. // Protocol defines
  21. #define PKT_START 0x02
  22. // States of packet decoder state machine
  23. #define PKT_WAIT_START      0
  24. #define PKT_WAIT_ADDR_HIGH  1
  25. #define PKT_WAIT_ADDR_LOW   2
  26. #define PKT_WAIT_LEN        3
  27. #define PKT_CMD             4
  28. #define PKT_WAIT_DATA       5
  29. #define PKT_WAIT_CRC_HIGH   6
  30. #define PKT_WAIT_CRC_LOW    7
  31. #define PKT_COMPLETE        8
  32. #define PKT_VALID           9
  33. #define PKT_INVALID       255
  34. // Error codes
  35. #define BAD_LENGTH 1
  36. #define BAD_CRC    2
  37. // Packet types
  38. #define SENSOR_POLL_CMD        0xA1
  39. #define SENSOR_PING_SYNC       0xA2
  40. #define SENSOR_CONFIG          0xA3
  41. #define SENSOR_GET_DATA        0xA4
  42. #define SENSOR_ACK             0xB0
  43. #define SENSOR_NAK             0xC0