目录

一、项目描述

二、仿真

三、程序

资料下载地址:基于STM32风速风向检测仿真​​​​​​​

一、项目描述

获取风速风向值并在OLED液晶上显示。

二、仿真

系统未上电

系统上电

更改风速风向

三、程序

主程序

#include "main.h"
#include "stm32f1xx.h"
#include "./usart/bsp_debug_usart.h"
#include <stdlib.h>
#include "./adc/bsp_adc.h"
#include "string.h"
#include "oled.h"uint16_t value[5];
char strvalue[10];uint8_t Wind_Direc[10][10] =
{"north    ",     //北风"northeast",      //东北风"east     ",     //东风"southeast",      //东南风"south    ",     //南风"southwest",        //西南风"west     ",       //西风"northwest",      //西北风
};
int main(void)
{   SystemClock_Config();//配置系统时钟为72 MHz DEBUG_USART_Config(); //初始化USART1 配置模式为 115200 8-N-1 DisPlay_Init();//配置OLED液晶屏ADCx_Init();//AD功能初始化HAL_ADCEx_Calibration_Start(&hadcx);//启用ADC校准HAL_ADC_Start(&hadcx );//开始采集delay_ms(10);//等待AD采集while (1){Get_Pressure_Gas_Value();}
}void Get_Pressure_Gas_Value(void)
{static  int idx = 0;value[0] = ADC_Get_Average(0,1);Current_Voltage = value[0] * 100 / 4095;//采集电位计电压sprintf(strvalue,"%d   ",Current_Voltage);//整型数据转化为字符串OLED_ShowString(45,2,strvalue);//显示风速value[1] = ADC_Get_Average(1,1);if(value[1] < 511 ){idx = 0;}else if(value[1] < 1022 && value[1] >= 511){idx = 1;}else if(value[1] < 1533 && value[1] >= 1022){idx = 2;}else if(value[1] < 2044 && value[1] >= 1533){idx = 3;}else if(value[1] < 2555 && value[1] >= 2044){idx = 4;}else if(value[1] < 3066 && value[1] >= 2555){idx = 5;}else if(value[1] < 3577 && value[1] >= 3066){idx = 6;}else if( value[1] >= 3577){idx = 7;}OLED_ShowString(45,4,Wind_Direc[idx]);//显示printf("WindSpeed = %d\r\nWindDirect = %s\r\n"  ,Current_Voltage,Wind_Direc[idx]);HAL_Delay(10);}/*** @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_MUL5;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); }
}

基于STM32风速风向检测仿真相关推荐

  1. 【资料转发分享】基于STM32智能路灯灯光自动控制系统设计-基于STM32无刷电机BLDC速度控制器系统设计-基于STM32热释人体感应智能门禁报警系统设计-基于STM32居家加湿器控制仿真系统设计

    1604基于STM32智能路灯灯光自动控制系统设计-毕设课设资料 实现的功能如下,下图是仿真原理图: 通过ARM内部的ADC采集光敏电阻电压,判断电压值 电压值低于设定的值,表示光强太弱,开路灯 光强 ...

  2. 基于STM32单片机水位检测系统仿真设计

    文章目录 主要功能 仿真图 程序(提供源文件源码) 本设计基于STM32单片机水位检测系统仿真设计(proteus仿真+程序) 仿真图proteus 8.11 程序编译器:keil 5 编程语言:C语 ...

  3. 基于stm32的温湿度检测案例(一)

    系列文章目录 一.基于stm32的温度检测案例(一) 文章目录 目录 系列文章目录 一.基于stm32的温度检测案例(一) 文章目录 前言 一.实验器材简介 1.1.基于STM32F042F6P6的最 ...

  4. stm32采集交流电压信号_基于STM32的交流电压检测.pdf

    第24卷第13期 电子设计工程 2016年7月 V01.24 No.13 Electronic Jul.2016 DesignEngineering 基于STM32的交流电压检测 任宏斌,冷建伟 (天 ...

  5. 基于stm32的温湿度检测案例串口通信屏显示(二)

    文章目录 前言 一.串口通信屏幕 二.DHT11测试效果与说明 三.读入数据 四.串口及中断配置 五.屏幕上显示数据 5.1.屏幕内嵌指令 5.2.静态数据 5.3.动态数据 六.效果 前言 因为st ...

  6. 基于STM32指纹密码锁proteus仿真设计

    基于STM32指纹密码锁proteus仿真设计. 有仿真,程序,原文. 功能: 1.六位密码,设定初始密码(123456) 2.Electronic Locks(电子密码锁) (等待输入密码,密码用* ...

  7. 基于STM32可调时钟仿真

    目录 一.项目功能概述 二.仿真 三.程序 资料下载地址:基于STM32可调时钟仿真 一.项目功能概述 1.LCD1602液晶屏实时显示当前时间 2.通过按键调整时间 二.仿真 定时使用stm32内部 ...

  8. STM32项目设计:基于STM32的风向风速测量仪

    目录 一.项目功能概述 二.材料选择 三.程序设计 四.实物 资料下载地址:基于STM32风向风速检测设计 一.项目功能概述 1.通过风向.风速传感器获取当前风向.风速 2.通过DHT11获取温湿度 ...

  9. 7位格雷码计算风向_基于单片机的风速风向检测系统设计

    摘 要:介绍了一种风速风向传感器原理,选用LPC921单片机设计了数据采集和数据传输的检测系统,给出了系统硬件电路图和软件流程图,分析了硬件设计和软件编程中的一些问题. 1 引言 风速风向测量是气象监 ...

最新文章

  1. 算法刷题宝典.pdf
  2. Java算法之 选择排序
  3. python当中pip使用_python
  4. 番茄花园该打,反垄断更该升级
  5. ASP.NET 2.0 中的 Theme 功能
  6. log4cplus导致主进程不能退出问题解决
  7. 阿里云移动端播放器高级功能---截图和音频波形 1
  8. awss3 android,aws s3 命令
  9. java 占位符_Java重要知识点
  10. 二分类问题的评分值与损失函数
  11. 网易云音乐 网络错误 linux,archlinux下网易云音乐netease-cloud-music启动报错,无法打开...
  12. 常见的研究方法有哪些?
  13. datealive软件最新_约会大作战手游官网版下载-约会大作战正版手游下载地址v3.79_86PS软件园...
  14. php怎么规范图片大小,如何在PHP中调整图片大小?
  15. 做跨境电商的Anker的也回来“内卷”了?
  16. 本地如何内网穿透映射外网
  17. 计算机哪里找产品密钥,计算机windows的密钥在哪里可以找到?
  18. 最简单的九九乘法表打印
  19. 端口渗透—23端口Telnet
  20. Elasticsearch:运用 Java 创建索引并写入数据

热门文章

  1. Spring 学习之扩展点总结之后置处理器(一)
  2. 2 Java并发原理精讲课程学习笔记
  3. 学讲普通话水平测试软件,普通话智能学习软件
  4. 生命的起源---世界3大难题之解
  5. STM32开发项目:定时器预装载寄存器(ARR)
  6. 《我如何自己做自己的导师》
  7. 解决安装ROS时出现的sudo rosdep init错误问题
  8. python语言format是什么意思_Python代码中str.format()函数有什么功能呢?
  9. 项目质量管理之持续改进
  10. 大脑是如何编码外界各种信息的?