ST意法半导体
登录
直播中
张健
7年用户
1382经验值
私信
关注
[问答]
STM32F410 Bat电压测量消耗速度有多快?
开启该帖子的消息推送
STM32F410
BAT
大家好,
我只是想知道连续测量 VBat 是否会更快耗尽电池电量?速度有多快?
不幸的是,我没有能够测量如此低电流的工具。
我在我的项目中使用
STM32
F410CB。我将 adc1(唯一可用的)与通道 0 和 1 一起使用。我使用 DMA 连续请求。
我添加了一块电池并使用相同的 ADC 对其进行了测量。作品
完美。但是我怕连续测量vbat真的会耗尽我的电池。
回帖
(1)
h1654155275.5764
2023-1-30 11:24:04
一切正常。这就是我设法做到的
while(1)
{
HAL_ADC_Start_DMA(&hadc1, (uint32_t*) s_analog_data,
SAMPLE_SIZE * ANALOG_IN_INDEX_max);
osDelay(pdMS_TO_TICKS(2));
HAL_ADC_Stop_DMA(&hadc1);
// suspend the scheduler to prevent race condition of variable
// s_ai_encoder_val, s_ai_second_val and s_ai_bat_voltage_val
vTaskSuspendAll();
s_ai_encoder_val = get_average(s_analog_data, ANALOG_IN_INDEX_encoder,
SAMPLE_SIZE);
s_ai_second_val = get_average(s_analog_data, ANALOG_IN_INDEX_second,
SAMPLE_SIZE);
if ((xTaskGetTickCount() - last_updated_tick > VBAT_PERIOD_TICK)
|| (0 == s_ai_bat_voltage_val))
{
last_updated_tick = xTaskGetTickCount();
ADC_InitTypeDef last_def;
mAnalogIn_configure_vbat(&last_def);
HAL_ADC_Start(&hadc1);
s_ai_bat_voltage_val = HAL_ADC_GetValue(&hadc1);
// Protect against an over and over reading of an
// not connected battery
if (0 == s_ai_bat_voltage_val)
{
s_ai_bat_voltage_val = 1;
}
mAnalogIn_configure_2_channels(&last_def);
}
// re-enable scheduler
xTaskResumeAll();
}
它遗漏了一些函数定义,但我认为它不言而喻。
一切正常。这就是我设法做到的
while(1)
{
HAL_ADC_Start_DMA(&hadc1, (uint32_t*) s_analog_data,
SAMPLE_SIZE * ANALOG_IN_INDEX_max);
osDelay(pdMS_TO_TICKS(2));
HAL_ADC_Stop_DMA(&hadc1);
// suspend the scheduler to prevent race condition of variable
// s_ai_encoder_val, s_ai_second_val and s_ai_bat_voltage_val
vTaskSuspendAll();
s_ai_encoder_val = get_average(s_analog_data, ANALOG_IN_INDEX_encoder,
SAMPLE_SIZE);
s_ai_second_val = get_average(s_analog_data, ANALOG_IN_INDEX_second,
SAMPLE_SIZE);
if ((xTaskGetTickCount() - last_updated_tick > VBAT_PERIOD_TICK)
|| (0 == s_ai_bat_voltage_val))
{
last_updated_tick = xTaskGetTickCount();
ADC_InitTypeDef last_def;
mAnalogIn_configure_vbat(&last_def);
HAL_ADC_Start(&hadc1);
s_ai_bat_voltage_val = HAL_ADC_GetValue(&hadc1);
// Protect against an over and over reading of an
// not connected battery
if (0 == s_ai_bat_voltage_val)
{
s_ai_bat_voltage_val = 1;
}
mAnalogIn_configure_2_channels(&last_def);
}
// re-enable scheduler
xTaskResumeAll();
}
它遗漏了一些函数定义,但我认为它不言而喻。
举报
更多回帖
rotate(-90deg);
回复
相关问答
STM32F410
BAT
STM32F410
参考手册(RM0401 Rev 3) 中块基址错误怎么解决?
2023-01-03
217
STM32F410
端口复用SPI5,引脚电平很低的原因?
2024-04-12
203
ARM Cortex-m3到底可以做
多快
2022-10-26
2316
请问
STM32F
407 ADC不稳定,波动很大怎么解决?
2019-03-22
16652
如何利用C8051
F410
实现精确信号模拟电路设计?
2021-04-22
1098
请问DSP的I/O口的交换
速度
有
多快
呢?
2019-08-21
2625
STM32F
03系列的电流
消耗
大概是多少啊
2022-12-02
191
MSP430 I2C硬件模块的
速度
有
多快
?
2014-12-30
3660
电子的漂移
速度
究竟有
多快
?
2019-08-08
4976
请问现在的高速模-数转换器
速度
有
多快
?
2021-04-12
1552
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分