首页 > 其他分享 >37 基于STM32的电压检测WIFI模拟

37 基于STM32的电压检测WIFI模拟

时间:2024-12-07 10:28:56浏览次数:6  
标签:void WIFI 37 STM32 OLED 电压 printf include Check

目录

一、主要功能

二、硬件资源

三、程序编程

四、实现现象


一、主要功能

基于STM32单片机,通过滑动变阻器模拟电压传感器检测电压,通过12864显示显示电压和电压阈值,按键可以控制阈值的增加,并通过串口实时显示相关参数和状态

二、硬件资源

基于KEIL5编写C++代码,PROTEUS8.15进行仿真,全部资源在页尾,提供安装包。

编辑

三、程序编程

#include "stm32f10x.h"#include "usart.h"#include "delay.h"#include "sys.h"#include "led.h"#include "adc.h"#include "key.h"#include "oled.h"#include "code.h"#include "bmp.h"u16 t;  
u16 times=0;
u16 times1 = 0;
u16 times2 = 0;
u8 LsensVal=0;  //将电压传感器的值赋值给LsensVal  PF.7u8 key=0;void Check\_serial\_KEY(void);void Check(void);void serial_port(void);	
 int main(void)
 {	
	 
	 LED_Init();		  	        //初始化与LED连接的硬件接口
   Adc\_Init();   delay\_init();	 KEY\_Init();	 Lsens\_Init();        //初始化电压传感器端口
	 uart\_init(57600);		OLED\_Init();		OLED_ColorTurn(0);//0正常显示,1 反色显示
		OLED_DisplayTurn(0);//0正常显示 1 屏幕翻转显示	
		printf("开机测试完成!\\r\\n");		OLED\_Clear();		OLED\_Display_Sensitizer();//显示传感器种类
		OLED\_Display\_Welcome();//
		
		printf("开机测试完成!\\r\\n");	  printf("\\r\\n欢迎使用!\\r\\n"); // 初始化完成并测试串口
	 
	 LED0 = 1;
	 LED1 = 0;	 while(1)
	 {		 Check\_serial\_KEY();       //按键控制函数
		  Check();      serial_port();			
			if(LsensVal > dyyz)
			{
				LED0 = 0;
				LED1 = 1;				if(times1 %20 == 1)
				{				printf("电压过高,请注意\\r\\n");
				}
				times1++;
			}			else
			{
				LED0 = 1;
				LED1 = 0;				if(times2 %20 == 1)
				{				printf("电压正常\\r\\n");
				}
				times2++;
			}
		}	 
 } //串口传输函数,并检查void serial_port(){

		
					LsensVal=Lsens\_Get\_Val();  //将电量传感器的值赋值
					for(t=0;t<1;t++)                //Proteus的STM32F103仿真模型只能正确接收第一个字符
					{
						USART1->DR=USART\_RX\_BUF\[t\];						while((USART1->SR&0X40)==0);//等待发送结束
					}					if(times%20 == 1)
					{          printf("DIANYA= %d\\r\\n",LsensVal);					printf("DIANYAYU= %d\\r\\n",dyyz);					delay_ms(10);
					USART\_RX\_STA=0;
					}
					times++;					
				delay_ms(10);
} 
void Check\_serial\_KEY(void){	
	OLED\_Clear\_Down();
	key=KEY_Scan(1);	  //0,不支持连续按;1,支持连续按;
	if(key)
	{						   
		switch(key)
		{				 
			case WKUP_PRES:	// 电压阈值增大

				dyyz++;				break; 

			case KEY1_PRES:	  //电压阈值减少
				dyyz--;				break;																																																								
			default:				break;
		}
	}	else delay_ms(10); 

}void Check(void){
			times++;			if(times%5==0)
			{     
				OLED\_Display\_SensitizerNumber();//显示传感器数值
			}				delay_ms(10);
}

四、实现现象

具体动态效果看B站演示视频:

B站演示视频

基于STM32的电压检测WIFI模拟
B站演示视频

虚拟串口讲解

全部资料(源程序、仿真文件、安装包、演示视频):

百度网盘资料下载%3Ft%3DO83A&pos_id=img-1tQfw6vT-1732950048072)https://pan.baidu.com/s/1tPHt82_tvyGZhqJqhLVcXQ?pwd=p63y

标签:void,WIFI,37,STM32,OLED,电压,printf,include,Check
From: https://blog.csdn.net/ldejsy/article/details/144305933

相关文章

  • 题解:AtCoder Beginner Contest AT_abc373_d ABC373D Hidden Weights
    题目传送门题目翻译给你一个$N$个点,$M$条边的有向图,其中边有边权。现在让你给每一个点设置一个点权$a$,使得对于任意两点$x$和$y$,如果$x$到$y$有一条边,边权为$w$,那么需要满足$a_y-a_x=w$。现在让你输出一组合法的分配方案,题目保证存在,输出任意一组都行。思路1(注意......
  • 题解:AT_abc371_c [ABC371C] Make Isomorphic
    题目大意有两个简单无向图,你每一次可以给第二个图添上或去掉一条边,有相应花费,问将两个图变为同构最少需要花费多少钱。思路观察数据范围,可以发现$N$非常小,可以考虑枚举全排列。所以我们就暴力枚举$1$到$N$,把这个当前排列记在一个数组里,$t[i]$表示在第一个图中点$i$对应......
  • STM32多功能控制板
    哈喽大家好,这一期我给大家提供一套自己画的STM32多功能控制板,同时给大家提供一套自己写的综合程序,后续大家使用的话可以在这个基础之上增加。一、原理图及PCB原理图中包含STM32F103C8T6最小系统板子,这个最小系统板也是我自己画的,在我的第一个帖子里面有原理图和PCB,学习硬件的......
  • 1137. 第 N 个泰波那契数
    题目如下:https://leetcode.cn/problems/n-th-tribonacci-number/description/?envType=study-plan-v2&envId=dynamic-programming思路:动态规划Java代码如下:`importjava.util.Scanner;classSolution{publicstaticvoidmain(String[]args){Scannerscanner=newScan......
  • 洛谷题单指南-线段树-P1637 三元上升子序列
    原题链接:https://www.luogu.com.cn/problem/P1637题意解读:统计序列a[1]~a[n]中三元上升子序列的个数,三元上升子序列是指对于1<=i<j<k<=n有a[i]<a[j]<a[k],(a[i],a[j],a[k])成为一组上升子序列。解题思路:1、先思考一下暴力,通过三重循环枚举i,j,k找到所有i<j<k时符合a[i]<a[j]<a[k]......
  • cubemx配置stm32F103与AX58100生成Ethercat从站
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、项目简介二、整体开发流程三、CUBEMX的配置1.设置时钟2.RCC设置3.时钟树4.定时器配置5.SPI设置6.GPIO配置及其外部中断7.中断配置8.程序生成四.keil编辑1.目录添加如下main.c:main.h:gpio.......
  • LM317&LM337可调电源制作教程:一学就会,简单实用!
    目录......
  • STM32:(入门)实现LED2灯循环闪烁
    思路:认识开发板的引脚——进行参数配置——运行代码——烧入开发板一、认识开发板的引脚(认识开发板)(STM32有2个LED灯的引脚分别是LED1-PA3,LED2-PB8【反面】) 依据题目,LED2灯---PB8二、进行参数配置(打开STM32CubeMx软件(新建项目)----选择版本【例题使用STM32F151C8】-......
  • P2537 [AHOI2005] 穿越磁场
    P2537[AHOI2005]穿越磁场好久以前就加了题单的好题可你就是不写是吧(/‵Д′)/~╧╧题目描述探险机器人在Samuel星球上寻找一块奇特的矿石,然而此时它陷入了一片神秘的磁场区域,动弹不得。探险空间站立刻扫描了这片区域,绘制出该区域的磁场分布平面图。这片区域中分布了N个磁场......
  • hhdb数据库介绍(10-37)
    管理表回收站表回收站功能,是指在开启表保留参数(dropTableRetentionTime)情况下,服务端(默认3323)操作DROP、TRUNCATE、DELETE不带WHERE条件(自动提交)的表,会进入回收站。管理平台在保留时间内支持可视化数据闪回操作,另外还包括查看可还原数据列表、还原(闪回)数据、删除数据、查看历史......