| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- /**********************************
- * 文件名称: 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
|