
dmaismdio
F103c8t6
Sys
Debug serial wire
Rcc 两个都最后
Gpio pc13 变成output
Adc1 最后切换根据题目
Usar1 asnch
Freertos -v2 -task
上面右,下面中间 hclk改成72
再右边 projeckname学号,不能有中文,toolchain 改成mdk
code generate 勾选。h
然后生成
换代码
33333放在application user core 主函数
#include
#include
33333粘贴到application user core -adc.c的103 行
uint32_t Adc_Read()
{
uint32_t adc=0,vcc=0;
HAL_ADC_Start(&hadc1);
if(HAL_ADC_PollForConversion(&hadc1, 100)==HAL_OK)
{
adc=HAL_ADC_GetValue(&hadc1);
}
vcc=(1200*4096)/adc;
return vcc;
}
333333放到freetos·c下面的for
char buf[20];
uint16_t VCC;
VCC = Adc_Read();
sprintf(buf,"vcc:%u mv\r\n",VCC);
HAL_UART_Transmit(&huart1,(uint8_t *)buf,strlen(
),HAL_MAX_DELAY);
HAL_Delay(1000);
333333放到adc 106行
float Get_Temperature(void)
{
float adc_value, voltage, temperature;
uint32_t sum = 0;
for (int i = 0; i < 8; i++) {
HAL_ADC_Start(&hadc1);
HAL_ADC_PollForConversion(&hadc1, 10);
sum += HAL_ADC_GetValue(&hadc1);
HAL_ADC_Stop(&hadc1);
}
adc_value = (float)sum / 8.0f;
// 3. 计算温度
voltage = adc_value * VREF / 4095.0f;
temperature = ((V25 - voltage) / AVG_SLOPE) + 25.0f;
return temperature;
}
333333全放adc24行
#define VREF 3.3f // 假设VDDA电压
#define V25 1.43f // 25°C时传感器电压值
#define AVG_SLOPE 0.0043f // 温度系数(mV/°C)
- 0关注
- 0粉丝
- 0获赞
- 0积分
