- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我是 ANSI C @STM32 的新手,但我尝试使用分压器和模拟 GPIO 测量电压(~12V)。
我试过:
value = HAL_GPIO_ReadPin(VOLTAGE_GPIO_Port, VOLTAGE_Pin);
但它总是返回 0
然后我尝试使用 ADC(我不知道那是必需的)
value = HAL_ADC_GetValue(&hadc1);
但还是0。
在 Arduino 上你可以简单的使用:
value = analogRead(1);
并且有效。
这里是 ADC channel 的初始化:
static void MX_ADC1_Init(void)
{
/* USER CODE BEGIN ADC1_Init 0 */
/* USER CODE END ADC1_Init 0 */
ADC_ChannelConfTypeDef sConfig = {0};
/* USER CODE BEGIN ADC1_Init 1 */
/* USER CODE END ADC1_Init 1 */
/** Common config
*/
hadc1.Instance = ADC1;
hadc1.Init.ScanConvMode = ADC_SCAN_DISABLE;
hadc1.Init.ContinuousConvMode = DISABLE;
hadc1.Init.DiscontinuousConvMode = DISABLE;
hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START;
hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT;
hadc1.Init.NbrOfConversion = 1;
if (HAL_ADC_Init(&hadc1) != HAL_OK)
{
Error_Handler();
}
/** Configure Regular Channel
*/
sConfig.Channel = ADC_CHANNEL_15;
sConfig.Rank = ADC_REGULAR_RANK_1;
sConfig.SamplingTime = ADC_SAMPLETIME_1CYCLE_5;
if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN ADC1_Init 2 */
/* USER CODE END ADC1_Init 2 */
}
我真的需要一个 ADC channel 吗,没有像 Arduino 这样的“简单”模拟输入吗?
我知道我需要对输入值进行除法以获得正确的电压,但目前我没有得到任何数据。
单片机为STM32F107VCT7
编辑:
现在尝试了以下方法:
HAL_ADC_Start(&hadc1);
if (HAL_ADC_PollForConversion(&hadc1, 1000000) == HAL_OK)
{
g_ADCValue = HAL_ADC_GetValue(&hadc1);
}
HAL_Delay(500);
现在 g_ADCValue 返回值但看起来像随机数......输入电压没有改变并得到各种数据。
尝试过 1:1,但它总是品脱 0x3E,改变电压不会产生任何影响
最佳答案
如果您要尝试使用它们,则需要阅读 STM32 HAL 函数的文档。
您缺少一些函数调用,例如 HAL_ADC_Start
。HAL_ADC_GetValue
只会在您告诉 ADC 模块开始转换并等待转换完成后返回新的 ADC 读数。
所有这些类型的操作也发生在 Arduino 环境中 - 它们只是对您隐藏以使事情变得简单。
关于c - STM32 上的电压测量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56692702/
android中是否有访问耳机硬件输入的API?理想情况下,我希望能够直接读取输入电压/电流。在 Java 或 NDK 中访问它都可以。最好有办法在非 root 手机上执行此操作。 最佳答案 如果您需
本文实例讲述了android电源信息查看方法。分享给大家供大家参考。具体如下: 1. PowerTestActivity: ?
我想在安卓手机上通过Audio接口(interface)实现232通信。 > 当我想将音频电压转换为数字数据时遇到了一个问题,我不知道音频电压将转换为什么数字值,换句话说它是指音频模拟和数字之间的“映
我正在尝试使用 pogo 引脚连接为 galaxy nexus 构建一个自定义底座,并且我正在尝试找到一种方法来检测引脚上的小电压变化。我考虑过使用 ACTION_BATTERY_CHANGED,但我
是否有可能在 python 或 bash 中获取 linux 操作系统的输入功率(如电压或瓦特)? 我的系统使用电池运行,我想在电池电量太低而无法为系统供电时将其关闭。 最佳答案 您可能想要读取 /s
我是一名优秀的程序员,十分优秀!