ReaddataTask02.c 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. void ReaddataTask02(void *argument)
  2. {
  3. /* USER CODE BEGIN ReaddataTask02 */
  4. /* Infinite loop */
  5. uint8_t fdc2214_initready1 = 0;
  6. uint8_t fdc2214_initready2 = 0;
  7. uint8_t device1IDValid = 0; // 设备ID是否有效的标志
  8. uint8_t device2IDValid = 0; // 设备ID是否有效的标志
  9. uint32_t lastCheck1Time = 0; // 记录上次检查时间
  10. uint32_t lastCheck2Time = 0; // 记录上次检查时间
  11. const uint32_t checkInterval = 5000; // 5秒检查间隔(毫秒)
  12. SoftI2C_Init(&hi2c1);
  13. SoftI2C_Init(&hi2c2);
  14. osDelay(10);
  15. for(;;)
  16. {
  17. device1IDValid =1;
  18. device2IDValid =1;
  19. uint32_t now = HAL_GetTick();
  20. // 检查设备1
  21. if ((now - lastCheck1Time) >= checkInterval)
  22. {
  23. lastCheck1Time = now;
  24. CheckFDC2214_ID(&hi2c1, 1, &device1IDValid);
  25. }
  26. if (device1IDValid)
  27. {
  28. printf("1\n");
  29. // 第一个电容
  30. ProcessFDC2214(&hi2c1, filterqueue1Handle, &fdc2214_initready1, &device1IDValid, 0, 18, 33, 43.1f, 1);
  31. }
  32. now = HAL_GetTick();
  33. // 检查设备2
  34. if ((now - lastCheck2Time) >= checkInterval)
  35. {
  36. lastCheck2Time = now;
  37. CheckFDC2214_ID(&hi2c2, 2, &device2IDValid);
  38. }
  39. if (device2IDValid)
  40. {
  41. printf("2\n");
  42. // 第二个电容
  43. ProcessFDC2214(&hi2c2, filterqueue2Handle, &fdc2214_initready2, &device2IDValid, 0, 18, 33, 43.1f, 2);
  44. }
  45. osDelay(20);
  46. }
  47. /* USER CODE END ReaddataTask02 */
  48. }