基于STM32超声波风速风向测量仪
时间:2022-09-15 10:00:00
目录
一、功能描述
二、视频显示
三、原理图
四、部分代码
五、论文
六、数据清单
数据下载地址:基于STM超声波风速风向测量仪
一、功能描述
二、视频显示
基于STM超声波风速风向测量仪
三、原理图
四、部分代码
#include "main.h" #include "stm32f1xx.h" #include #include "./led/bsp_led.h" #include "./adc/bsp_adc.h" #include "string.h" #include "oled.h" uint16_t value[5]; char strvalue[10]; char strvalue2[100]; float Current_Voltage2; void Get_val(void); int main(void) { HAL_Init();//HAL库初始化 SystemClock_Config()//系统时钟配置为72M ADCx_Init();//AD端口初始化 I2C_GPIO_Config();//I2C端口初始化 OLED_init();//OLED液晶屏初始化 while (1) { Get_val()//获取风速风向数据 HAL_Delay(500)ms } } void Get_val(void) { value[0] = ADC_Get_Average(0,100) Current_Voltage = value[0] * 360 / 2482 if(Current_Voltage >= 360 ) Current_Voltage = 360; sprintf(strvalue,"Direct: %d ",Current_Voltage);///浮点数据转换为字符串 OLED_P8x16Str(15,4,strvalue);//显示风向 value[1] = ADC_Get_Average(6,100) Current_Voltage2 = value[1] * 30.0f / 2482.0f;///找出风速 sprintf(strvalue2,"Speed: %.1f m/s ",Current_Voltage2)//浮点数据转化为字符串 OLED_P8x16Str(15,6,strvalue二、//显示风速 } /** * @brief System Clock Configuration * The system Clock is configured as follow : * System Clock source = PLL (HSE) * SYSCLK(Hz) = 72000000 * HCLK(Hz) = 72000000 * AHB Prescaler = 1 * APB1 Prescaler = 2 * APB2 Prescaler = 1 * HSE Frequency(Hz) = 8000000 * HSE PREDIV1 = 1 * PLLMUL = 9 * Flash Latency(WS) = 2 * @param None * @retval None */ void SystemClock_Config(void) { RCC_ClkInitTypeDef clkinitstruct = {0}; RCC_OscInitTypeDef oscinitstruct = {0}; /* Enable HSE Oscillator and activate PLL with HSE as source */ oscinitstruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; oscinitstruct.HSEState = RCC_HSE_ON; oscinitstruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1; oscinitstruct.PLL.PLLState = RCC_PLL_ON; oscinitstruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; oscinitstruct.PLL.PLLMUL = RCC_PLL_MUL9; if (HAL_RCC_OscConfig(&oscinitstruct)!= HAL_OK) { /* Initialization Error */ while(1); } /* Select PLL as system clock source and configure the HCLK, PCLK1 and PCLK2 clocks dividers */ clkinitstruct.ClockType = (RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2); clkinitstruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; clkinitstruct.AHBCLKDivider = RCC_SYSCLK_DIV1; clkinitstruct.APB2CLKDivider = RCC_HCLK_DIV1; clkinitstruct.APB1CLKDivider = RCC_HCLK_DIV2; if (HAL_RCC_ClockConfig(&clkinitstruct, FLASH_LATENCY_2)!= HAL_OK) { /* Initialization Error */ while(1); } } /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/