以下是一个使用STM32测量电机转速的简单示例。这个例子使用了STM32F103C8T6芯片,并使用了库函数来读取霍尔传感器的数据。霍尔传感器用于检测电机的转子位置,从而计算出电机的转速。
```c
#include \"stm32f103x8.h\"
#include \"stm32f103xb_discovery.h\"
#include \"misc.h\"
#include \"delay.h\"
#include \"gpio.h\"
#include \"i2c.h\"
#include \"tim.h\"
/* USER CODE BEGIN Includes */
/* USER CODE END Includes */
void MX_GPIO_Init(void);
void MX_I2C1_Init(void);
void MX_TIM1_Init(void);
/* USER CODE BEGIN Init */
/* USER CODE END Init */
void Error_Handler(void)
{
/* USER CODE */
}
int main(void)
{
/* USER CODE */
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_I2C1_Init();
MX_TIM1_Init();
while (1)
{
/* USER CODE */
}
}
/* USER CODE END main */
/** Configure pins as
* Analog
* Input
* Output
* EVENT_OUT
* EXTI
*/
static void MX_GPIO_Init(void)
{
GPIO_InitTypeDef GPIO_InitStruct;
/* GPIO Ports Clock Enable */
__HAL_RCC_GPIOC_CLK_ENABLE();
__HAL_RCC_GPIOH_CLK_ENABLE();
/*Configure IO15, IO14 and IO13 pins in Pins configuration */
GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15;
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
/* Configures IO17 pin in analog mode */
GPIO_InitStruct.Pin = GPIO_PIN_17;
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOH, &GPIO_InitStruct);
/* Configures IO19 pin in analog mode */
GPIO_InitStruct.Pin = GPIO_PIN_19;
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOH, &GPIO_InitStruct);
/* Configures IO21 pin in analog mode */
GPIO_InitStruct.Pin = GPIO_PIN_21;
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOH, &GPIO_InitStruct);
/* Configures IO23 pin in analog mode */
GPIO_InitStruct.Pin = GPIO_PIN_23;
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOH, &GPIO_InitStruct);
/* Configures IO25 pin in analog mode */
GPIO_InitStruct.Pin = GPIO_PIN_25;
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOH, &GPIO_InitStruct);
/* Configures IO27 pin in analog mode */
GPIO_InitStruct.Pin = GPIO_PIN_27;
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOH, &GPIO_InitStruct);
/* Configures IO29 pin in analog mode */
GPIO_InitStruct.Pin = GPIO_PIN_29;
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOH, &GPIO_InitStruct);
/* Configures IO31 pin in analog mode */
GPIO_InitStruct.Pin = GPIO_PIN_31;
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOH, &GPIO_InitStruct);
/* Configures IO33 pin in analog mode */
GPIO_InitStruct.Pin = GPIO_PIN_33;
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOH, &GPIO_InitStruct);
/* Configures IO35 pin in analog mode */
GPIO_InitStruct.Pin = GPIO_PIN_35;
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOH, &GPIO_InitStruct);
/* Configures IO37 pin in analog mode */
GPIO_InitStruct.Pin = GPIO_PIN_37;
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOH, &GPIO_InitStruct);
/* Configures IO39 pin in analog mode */
GPIO_InitStruct.Pin = GPIO_PIN_39;
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOH, &GPIO_InitStruct);
/* Configures IO41 pin in analog mode */
GPIO_InitStruct.Pin = GPIO_PIN_41;
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOH, &GPIO_InitStruct);
/* Configures IO43 pin in analog mode */
GPIO_InitStruct.Pin = GPIO_PIN_43;
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOH, &GPIO_InitStruct);
/* Configures IO45 pin in analog mode */
GPIO_InitStruct.Pin = GPIO_PIN_45;
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOH, &GPIO_InitStruct);
/* Configures IO47 pin in analog mode */
GPIO_InitStruct.Pin = GPIO_PIN_47;
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
宝马730贷款购买的费用不是固定的,会受到多种因素影响。比如说车的年款、配置、销售渠道以及当时的优惠政策等。以一些常见的情况为例,2019款730Li豪华套装,折后裸车价78万元,购置税64425元,
丰田海狮面包车的保值率挺高的。丰田品牌汽车可靠性强,一般开不坏,这是其保值率高的重要原因之一。而且丰田海狮空间大、动力足,载客拉货都方便,C证就能开。其内饰配置丰富多样,可根据需求定制,能满足不同用户
丰田海狮面包车的外观设计具有众多特点。它拥有流线型高身车顶及大气方正的车头,流畅的线条让人感觉很舒服,方正的车头则充满安全感。车身强健且宽大,车长5.915米,宽1.915米或1.95米,高2.2米或
丰田海狮面包车的内部空间很大。整车长5.915米,宽1.95米,高2.28米,轴距3.86米,车身重量2530千克,轮距前1675毫米、后1670毫米。中间走道将乘客座椅隔开,方便乘坐及进出。其9座车
丰田海狮面包车的动力性能相当出色。它搭载的是3.5LV6发动机,和进口埃尔法同款,马力可达282匹。前置后驱的设计让动力输出更强劲,不管是空车还是满载,动力都很充沛,不会出现动力不足的情况。相比国内很
丰田海狮面包车的市场价格因车型配置和座位数不同而有所差异。2025款进口丰田海狮6座卫生间版价格在45万-128万之间;7座价格在42万-89万左右;8座价格在43万-85万;9座价格在38万-82万