yqhs.c 833 B

12345678910111213141516171819202122232425262728293031323334353637
  1. #include "yqhs.h"
  2. Yqhuishou_Inf yqhuishou_inf;
  3. void Get_Yqhuishou_data(void);
  4. void Get_Yqhuishou_data(void)
  5. {
  6. uint16_t ModbusCRC=0;
  7. static uint16_t receive_error = 0; //i = 0, j = 0,
  8. Yqhuishou_Inf* pYqhuishou = &yqhuishou_inf;
  9. ModbusCRC = USART3_RX_BUF002[5]<<8;
  10. ModbusCRC |= USART3_RX_BUF002[6];
  11. if(USART3_RX_BUF002[1]!=0x03&&USART3_RX_BUF002[1]!=0x06) //校验读写属性
  12. {
  13. receive_error = 1;
  14. }
  15. else if(USART3_RX_BUF002[2] != 0x02) //校验数据长度
  16. {
  17. receive_error = 1;
  18. }
  19. else if(ModbusCRC != LIB_CRC_MODBUS(USART3_RX_BUF002,5)) //校验CRC
  20. {
  21. receive_error = 1;
  22. }
  23. pYqhuishou[USART3_RX_BUF002[0]-0x80].RTData_Num[0] = 1;
  24. pYqhuishou[USART3_RX_BUF002[0]-0x80].Yqhuishou_SSWD[0] = USART3_RX_BUF002[3]; //
  25. pYqhuishou[USART3_RX_BUF002[0]-0x80].Yqhuishou_SVAL[0] = USART3_RX_BUF002[4];
  26. }