adc.h 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. /**
  2. ******************************************************************************
  3. * File Name : ADC.h
  4. * Description : This file provides code for the configuration
  5. * of the ADC instances.
  6. ******************************************************************************
  7. ** This notice applies to any and all portions of this file
  8. * that are not between comment pairs USER CODE BEGIN and
  9. * USER CODE END. Other portions of this file, whether
  10. * inserted by the user or by software development tools
  11. * are owned by their respective copyright owners.
  12. *
  13. * COPYRIGHT(c) 2019 STMicroelectronics
  14. *
  15. * Redistribution and use in source and binary forms, with or without modification,
  16. * are permitted provided that the following conditions are met:
  17. * 1. Redistributions of source code must retain the above copyright notice,
  18. * this list of conditions and the following disclaimer.
  19. * 2. Redistributions in binary form must reproduce the above copyright notice,
  20. * this list of conditions and the following disclaimer in the documentation
  21. * and/or other materials provided with the distribution.
  22. * 3. Neither the name of STMicroelectronics nor the names of its contributors
  23. * may be used to endorse or promote products derived from this software
  24. * without specific prior written permission.
  25. *
  26. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  27. * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  28. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  29. * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
  30. * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  31. * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
  32. * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
  33. * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  34. * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  35. * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  36. *
  37. ******************************************************************************
  38. */
  39. /* Define to prevent recursive inclusion -------------------------------------*/
  40. #ifndef __adc_H
  41. #define __adc_H
  42. #ifdef __cplusplus
  43. extern "C" {
  44. #endif
  45. /* Includes ------------------------------------------------------------------*/
  46. #include "stm32f1xx_hal.h"
  47. #include "main.h"
  48. /* USER CODE BEGIN Includes */
  49. #include "var.h"
  50. /* USER CODE END Includes */
  51. extern ADC_HandleTypeDef hadc1;
  52. extern ADC_HandleTypeDef hadc2;
  53. /* USER CODE BEGIN Private defines */
  54. //ADC1顺序表
  55. #define ADC1_DATA_NUM 9
  56. #define ADC1_RANK_NTC_PCB 0
  57. #define ADC1_RANK_VIN 1
  58. #define ADC1_RANK_NTC_COIL 2
  59. #define ADC1_RANK_CURRENT 3
  60. #define ADC1_RANK_TORQUE_SENSOR 4
  61. #define ADC1_RANK_HARDWARE_VER 5
  62. #define ADC1_RANK_GAS 6
  63. #define ADC1_RANK_TP_MCU 7
  64. #define ADC1_RANK_VREF 8
  65. //ADC2顺序表
  66. #define ADC2_DATA_NUM 3
  67. #define ADC2_RANK_CURRENT_A 0
  68. #define ADC2_RANK_CURRENT_B 1
  69. #define ADC2_RANK_CURRENT_C 2
  70. typedef struct
  71. {
  72. uint16_t TorqueSensor;
  73. uint16_t GasSensor;
  74. }ADC_SensorData_Struct_t;
  75. typedef struct
  76. {
  77. uint16_t uw_phase_a_offset;//3相电流零点
  78. uint16_t uw_phase_b_offset;
  79. uint16_t uw_phase_c_offset;
  80. }ADC_3ShuntCurrent_OffSet_Struct_t;
  81. typedef struct
  82. {
  83. int16_t uw_phase_a;
  84. int16_t uw_phase_b;
  85. int16_t uw_phase_c;
  86. }ADC_3ShuntCurrent_Struct_t;
  87. /* USER CODE END Private defines */
  88. extern void _Error_Handler(char *, int);
  89. void MX_ADC1_Init(void);
  90. void MX_ADC2_Init(void);
  91. /* USER CODE BEGIN Prototypes */
  92. extern uint16_t ADC1_Result[ADC1_DATA_NUM];
  93. extern uint16_t ADC1_Result_Filt[ADC1_DATA_NUM];
  94. extern uint16_t ADC2_Result[ADC2_DATA_NUM];
  95. extern uint16_t ADC2_Result_Filt[ADC2_DATA_NUM];
  96. extern FlagStatus ADC2_ConvCpmplete_Flag;
  97. extern uint16_t TorqueSensor_AdcResult;
  98. extern ADC_SensorData_Struct_t ADC_SensorData;
  99. extern ADC_3ShuntCurrent_OffSet_Struct_t ADC_3ShuntCurrent_OffSet;
  100. extern ADC_3ShuntCurrent_Struct_t ADC_3ShuntCurrent;
  101. extern ADC_3ShuntCurrent_Struct_t ADC_3ShuntCurrent_RMSValue;
  102. extern uint16_t uw_current_offset;//母线电流零点
  103. extern void ADC_Start(void);
  104. extern void ADC_SensorData_Filt(uint16_t* p_ADC1_Result_Filt, uint16_t* p_ADC2_Result_Filt);
  105. extern void PhaseCurrent_CalRMSValue(ADC_3ShuntCurrent_Struct_t* ADC_3ShuntCurrent, ADC_3ShuntCurrent_Struct_t* PhaseCurrent_RMS);
  106. extern void MOS_NTC_Init( void );
  107. extern void PowerDownProtection( uint16_t BusVoltage_AD );
  108. /* USER CODE END Prototypes */
  109. #ifdef __cplusplus
  110. }
  111. #endif
  112. #endif /*__ adc_H */
  113. /**
  114. * @}
  115. */
  116. /**
  117. * @}
  118. */
  119. /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/