/********************************** * 文件名称: adc.h * 功能描述: ADC采样头文件 * 主要内容: * 1. ADC值转换宏定义 * 2. 外部变量声明 * * 注意事项: * - 包含总线电压、电流、热敏电阻的转换宏 * - 所有转换宏都基于3.3V参考电压和12位ADC分辨率 **********************************/ #ifndef __ADC_H_ #define __ADC_H_ /** * @brief 将ADC值转换为总线电压 * @param adc: ADC采样值 * @retval 总线电压值(V) * @note 0.000805f = 3.3f / 4095.0f,25.0f为电压分压系数 */ #define ADC_TO_VBUS(adc) (float)((adc)* 3.3f/ 4096.0f *25.0f) /** * @brief 将ADC值转换为电流值 * @param adc: ADC采样值 * @retval 电流值(A) * @note 0.000805f = 3.3f / 4095.0f,1.25f为偏置电压,0.12f为电流采样系数 */ #define ADC_TO_CURRENT(adc) (double)((((adc) * 3.3f / 4096.0f) ) / (0.12f) ) /** * @brief 将ADC值转换为电流值(带偏移校准) * @param adc: ADC采样值 * @param adc_offset: 电流偏移校准ADC值 * @retval 电流值(A) */ // 电压转换(反电动势) #define ADC_TO_VOL(adc) (float)((adc)* 3.3f/ 4096.0f *25.0f) /** * @brief 将ADC值转换为热敏电阻阻值 * @param adc: ADC采样值 * @retval 热敏电阻阻值(kΩ) * @note 4.7f为参考电阻,4095.0f为ADC满量程值 */ // #define ADC_TO_RT(adc) (3.3f * 4.7f / ((adc) * 3.3f/ 4095) - 4.7f) // (kohm) #define ADC_TO_RT(adc) (4.7f * 4095.0f / (adc) - 4.7f) // 外部变量声明 /** * @brief 电流偏移校准标志 * @note 0: 未开始校准, 1: 正在校准, 2: 校准完成 */ extern uint8_t get_offset_flag; extern float Ia_test,Ib_test,Ic_test; extern float Vbus, Temp; /** * @brief 电机角度 */ extern float theta; /** * @brief 电机角度(备用) */ extern float angle; /** * @brief q轴参考电流 */ extern float Iq_ref; /** * @brief EKF估计的电机转速(Hz) */ extern float EKF_Hz; /** * @brief 速度闭环控制标志 * @note 0: 启动阶段, 1: 过渡阶段, 2: 闭环控制 */ extern u8 speed_close_loop_flag; /** * @brief ADC1转换值数组 */ extern uint16_t ADC3ConvertedValue[ADC3_DMA_BUFFER_SIZE]; extern float calculate_temperature(float rt_kohm); #endif