项目:智慧教室(cubemx+webserver)

这篇具有很好参考价值的文章主要介绍了项目:智慧教室(cubemx+webserver)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

第一章:需求与配置

一。项目需求

        智能终端(应该是上位机)通过互联网发指令给中控主机,中控主机(stm32)接受到指令后再以无线形式对节点发出命令。

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

1.利用Zigbee实现教室内,无线传感网络搭建,对接环境传感器,教室内风扇,空调,灯,报警等装置
2.利用STM32实现Zigbee网关设计,运行触摸屏界面,嵌入式Web服务器

二。实现外设控制

注意:

        先配置引脚,再配置外设。否则会出现一些不可预料的问题

1.时钟,串口,灯,蜂鸣器配置

(1)RCC配置为外部时钟,修改时钟参数

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

(2)SWD配置:为了不引脚冲突,使用

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

(3)串口的使用(USART1,USART3)

<1>USART1

注意:大型项目串口使用中断,因为效率高

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

<2>USART3

串口3没有使用中断,观察原理图,使用串口母口与电脑通信。

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

(4)GPIO配置

1.GPIO灯的配置,设置为高电平(初始为灭)

2.GPIO蜂鸣器配置,设置为低电平(初始不响)

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

(5)LCD的FMSC配置

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

FMSC的LCD2配置,这是显示页面

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

(6)GPIO补充配置

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

(7)SPI的配置

PA5配置spi_sck

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

配置PB5,PB4

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

配置PH2为GPIO_OUTPUT

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

spi配置全双工

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

(8)Touch配置

设置SPi2,注意:PG15为高电平

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

设置SPI2

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

三。Webserver开发

1.SDIO配置

(1)PC12设置为SDIO_CK时钟

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

D0与D1配置

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

D2与D3

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

2.SDIO配置

DMA配置

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

3.ETH以太网接口

(1)根据原理图配置引脚

注意:有些引脚不需要配置,原因是采用RMII接口(需要看懂原理才可以自己配置)

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

(2)配置外设

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

时钟出现错误,修改

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

四。Freertos配置

1.调整时钟

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

2.任务的创建

(1)任务优先级的划分

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

优先级划分:WebServer优先级最高,GUI优先级最低。判断方式,用户体验最佳。

(2)堆栈大小划分

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

在Freertos中配置堆大小时,需要把上述除以4(原因未知,且不一定除以4,可能就是单纯的分配问题,因为板子内存本来就不多)

Touch

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

Gui

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

WebServer

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

Zigbee

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

3.其余优先级的配置

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

五。LWIP配置

(1)使能LWIP。关闭DHCP服务

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

(2)使能LWIP。关闭展示全部参数

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

(3)增大池大小

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

(4)回调函数调用

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

测试:使用上述回调函数,判断网络连接

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

	if(netif_is_link_up(netif)){
		
		printf("netif link is up\r\n");
		if(!netif_is_up(netif)){
			netif_set_up(netif);
			printf("netif is up\r\n");
		}
	}else{
		printf("netif link is down\r\n");
		
	}

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

六。FatFs(文件管理)

1.FatFs配置

(1)配置SD卡(SDIO配置之后才可以配置这个)

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

(2)设置HEAP堆空间大小

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

(3)点击生成(会弹出警告,询问是否自动生成代码,点击确定)

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

2.FatFs文件解释

(1)配置FatFs之后会出现的文件。

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

具体细节看下面这个图。上述三个文件对应下面的图。通用底层接口,链接机制,DSP驱动。

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

补充实验1:读写SD卡的内容,使用了usb读写卡,通过他读写SD卡

加入初始化代码,init在Freertos.c中的第一个任务中自动添加。

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

uint8_t u8chr[] = "hello";
uint32_t u32Wbytes;
/* USER CODE END Variables */    
void MX_FATFS_Init(void) 
{
  /*## FatFS: Link the SD driver ###########################*/
  retSD = FATFS_LinkDriver(&SD_Driver, SDPath); 
  /* USER CODE BEGIN Init */  
  if(f_mount(&SDFatFS,SDPath,1) == FR_OK)
  {
    if(f_open(&SDFile,(const char*)"fatfs.txt",FA_CREATE_ALWAYS|FA_WRITE) == FR_OK)
    {
      if(f_write(&SDFile,u8chr,sizeof(u8chr),&u32Wbytes) == FR_OK)
      {
        f_close(&SDFile);      
      }    
    }  
  }
  /* additional user code for init */     
  /* USER CODE END Init */
}

运行之后,SD卡通过usb转接口连接电脑。里面有fatfs.txt文件,打开里面有Hello字符。

注意:也可以fatfs.txt文件替换成scv文件,这是excel文件后缀名。

3.FatFs函数的参考手册

(1)进入c盘(cubemx的包目录下),找到第三方库存放地(Third_Party)项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

(2)找到FatFs文件夹中的doc,点击html文件

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

(3)打开html文件,函数解释都在这里,需要研究英文

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

4.底层文件的简要介绍

(1)FatFS底层实现

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

(2)通用底层驱动API

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

(3)我们应该研究什么东西

这些都是在KEIL工程中

//FatFS 提供的通用驱动文件的实现

ff_gen_drv.c

//针对SD底层驱动实现,封装成为通用的底层驱动API
//如果使能freeRTOS,在read和Write里面,会用到操作系统的消息队列

sd_diskio.c

//HAL库的二次封装,把所有基于SD卡的操作都在bsp_driver_sd实现

bsp_driver_sd.c

七。emWin移植

Cubemx配置

(1)使能CRC

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

(2)使能FSMC的写

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

创建有警告,正常

1.emWin的图形文件库的寻找,移植

(1)在stm32的Cubemx的第三方目录的同层文件夹下,有个ST文件夹

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

(2)ST文件夹下的STemWin就是图形文件库,移植就好(复制粘贴到Cubemx文件工程下面)

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

(3)移植到keil的工程目录第三方文件夹下《这是keil项目文件夹中
项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

2.keil工程的创建工作组

(1)创建工作组

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

(2)对工作组进行管理

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

(3)工作组路径与名称的设置

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

3.添加库,主要包括下面文件

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

(1)工作组添加存在的库文件

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

(2)第三方的工程文件

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

(3)添加emWin的os的GUI文件

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

(4)GUIconf.c与GUIDRV_Template.c与LCD_Template.c

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

(5)GUI_X_Touch_Analog.c

这个是触控,自己定义,Ctrl+N创建工程,Ctrl+s保存,在第三方库文件夹下的emWin文件中创建src文件夹。

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

在文件夹中保存文件

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

(7)STemWin_CM4_OS_wc16_ot.a

这个文件源码不开放,在Lib中,文件选择.a

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

注意:Keil是无法识别.a这种文件的,所以需要手动配置

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

选择library file

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

4.把移植好的文件(.h)加入工程文件

加入的是上述关联的文件夹

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

八。对代码的修改

为什么要对这些进行修改?

        我们使用的API接口是不统一的,一个是GUI驱动函数,一个是Lcd驱动函数,我们要同时使用他们,需要对双方进行连接,即代码相互调用。(一个驱动对硬件,一个驱动对液晶屏)

1.SD卡的初始化设置

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

#include "stdio.h"
#include "string.h"

uint8_t retSD;    /* Return value for SD */
char SDPath[4];   /* SD logical drive path */
FATFS SDFatFS;    /* File system object for SD logical drive */
FIL SDFile;       /* File object for SD */

/* USER CODE BEGIN Variables */

char u8chr[] = "hello";

uint32_t u32Wbytes;

char SensorBuff[100];

/* USER CODE END Variables */    

void MX_FATFS_Init(void) 
{
  /*## FatFS: Link the SD driver ###########################*/
  retSD = FATFS_LinkDriver(&SD_Driver, SDPath);

  /* USER CODE BEGIN Init */
  
  if(f_mount(&SDFatFS,SDPath,1) == FR_OK)
  {
    if(f_open(&SDFile,(const char*)"fatfs.txt",FA_CREATE_ALWAYS|FA_WRITE) == FR_OK)
    {
      if(f_write(&SDFile,u8chr,sizeof(u8chr),&u32Wbytes) == FR_OK)
      {
        f_close(&SDFile);
      
      }
    
    }
  
  }
	//创建文件
	if(f_open(&SDFile,(const char*)"Sensor.csv",FA_CREATE_ALWAYS|FA_WRITE) == FR_OK){
	
		//格式化文件流
		//创建表头
		sprintf(SensorBuff, "序号,温度,湿度,光照\r\n");
		f_write(&SDFile,SensorBuff,strlen(SensorBuff),&u32Wbytes);
		
		//循环写入表项
		for(int i; i < 10; i++){
			sprintf(SensorBuff, "%d,%d,%d,%d\r\n",i + 1, i + 20, i + 30, i + 40);
			f_write(&SDFile,SensorBuff,strlen(SensorBuff),&u32Wbytes);
			//刷新到文件中
//	  f_sync(&SDFile);		
		}
		//关闭文件,缓存写入文件内
		f_close(&SDFile);			
		}		  
  /* additional user code for init */     
  /* USER CODE END Init */
}

2.对GUIconfig.c图形库的设置

(1)对宏定义进行修改

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

#define GUI_NUMBYTES    (512*1024)		 //定义外部存储器大小
#define GUI_BLOCKSUZE   (0X80)			//定义最小内存库操作大小
#define SRAM_BANK_ADDR  ((U32)0x68000000)	//定义外部存储器首地址

(2)对GUI_X_Config的修改

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

void GUI_X_Config(void) {
  //
  // 32 bit aligned memory area
  //
	volatile U32* aMemory = (volatile U32*)(SRAM_BANK_ADDR);
  //
  // Assign memory to emWin
  //分配GUI存储器首地址及最小操作内存块大小
  GUI_ALLOC_AssignMemory((void *)aMemory, GUI_NUMBYTES);
  GUI_ALLOC_SetAvBlockSize(GUI_BLOCKSUZE);
  //
  // Set default font
  //
  GUI_SetDefaultFont(GUI_FONT_32_1);
}

3.对GUIDRV_Template.c进行修改

通过这种方式,lcd的驱动与GUI的驱动就连接起来,可以相互配合

(1)加入头文件,lcd.h,原因:GUI图形库与lcd连接,通过找到点   后向lcd拷贝即可

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

(2)对set与get函数进行处理

set来画点

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

      //添加lcd画点接口
      LCD_DrawPoint(x,y,PixelIndex);

get来获取点位置

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

	  //添加lcd读取点接口
      PixelIndex = lcd_read_gram(x,y);

4.对LCDConf_FledColor_Templae.c进行修改

(1)屏幕大小,屏幕上下左右的AD值,触摸屏的处理

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

#define XSIZE_PHYS  480 //  屏幕X坐标长度
#define YSIZE_PHYS  272 //  屏幕Y坐标长度


#define GUI_TOUCH_AD_Y_TOP 170		// 屏幕X0点坐标AD值
#define GUI_TOUCH_AD_Y_BOTTOM 1900	// 屏幕X480点坐标AD值
#define GUI_TOUCH_AD_X_LEFT 100		// 屏幕Y0点坐标AD值
#define GUI_TOUCH_AD_X_RIGHT 1930	// 屏幕Y272点坐标AD值

(2)Config配置函数处理

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

void LCD_X_Config(void) {

  //
  // Set display driver and color conversion
  //设置成自己的API接口
  GUI_DEVICE_CreateAndLink(&GUIDRV_Template_API, GUICC_M565, 0, 0);
  //
  // Display driver configuration, required for Lin-driver
  // 显示尺寸配置
  LCD_SetSizeEx (0, XSIZE_PHYS , YSIZE_PHYS);
  LCD_SetVSizeEx(0, VXSIZE_PHYS, VYSIZE_PHYS);
  //
  //触摸笔的校准
  GUI_TOUCH_Calibrate(GUI_COORD_X, 0, 480, GUI_TOUCH_AD_X_LEFT , GUI_TOUCH_AD_X_RIGHT);
  GUI_TOUCH_Calibrate(GUI_COORD_Y, 0, 272, GUI_TOUCH_AD_Y_TOP, GUI_TOUCH_AD_Y_BOTTOM);
}

(3)在驱动中写如lcd初始化

加入#include "lcd.h",自写的文件可以直接写到最顶上

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

5.GUI_X_Touch_Analog.c(这是自写的文件)

#include "GUI.h"
#include "Touch.h"


void GUI_TOUCH_X_ActivateX(void) 
{

}

void GUI_TOUCH_X_ActivateY(void)
{

}

//获取X坐标AD值
int  GUI_TOUCH_X_MeasureX(void) 
{
	return XPT_Read_XY(CMD_RDX);
}

//获取Y坐标AD值
int  GUI_TOUCH_X_MeasureY(void) 
{	
	return XPT_Read_XY(CMD_RDY);
}

6.Freertos.c中

#include "GUI.h"
void Touch_Task(void const * argument)
{
  /* init code for LWIP */
  MX_LWIP_Init();

  /* init code for FATFS */
  MX_FATFS_Init();
  GUI_Init();
  GUI_SetBkColor(GUI_BLUE);
  GUI_SetFont(GUI_FONT_32_1);
  GUI_SetColor(GUI_YELLOW);
  GUI_Clear();	

  /* USER CODE BEGIN Touch_Task */
	
	GUI_PID_STATE State;   
	printf("system is runing!\r\n");
  /* Infinite loop */
  for(;;)
  {
  		//执行触摸笔检测
		GUI_TOUCH_Exec();	
        //获取触摸笔状态值
		GUI_TOUCH_GetState(&State);
		//是否按下
		if(State.Pressed){
			//打印触摸笔坐标信息
			GUI_DispStringAt("X:",0,0);
			GUI_DispDecAt(State.x,32,0,4);
			GUI_DispStringAt("Y:",0,24);
			GUI_DispDecAt(State.y,32,24,4);			
		}
		osDelay(10);
  }
  /* USER CODE END Touch_Task */
}

运行结果:

项目:智慧教室(cubemx+webserver),单片机,嵌入式硬件

下一节补充

本人暂时遇到的BUG,stm32刷新速度很慢,非常慢。发现串口循环打印,暂用资源,ping命令ping不通。文章来源地址https://www.toymoban.com/news/detail-689037.html

到了这里,关于项目:智慧教室(cubemx+webserver)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【STM32仿真】STM32CubeMX+Keil+Proteus单片机仿真

      博主最近进行单片机的仿真,本篇文章主要利用了STM32CubeMX、Keil和Proteus三个软件,为后期的硬件打下基础。文章主要目的是学习软件的使用和单片机的仿真。   本文是我在学习proteus软件和STM32CubeMX过程当中的心得和学习笔记,在学习时已经有C, C++的基础。文章附上了

    2024年02月16日
    浏览(59)
  • STM32CubeMX里面没有 CLion的SW4STM32选项(CLion修改单片机型号)

            大家在使用最新版本的CubeMX按照网上的一些教程配置CLion时通常会遇到编译器选项里面没有SW4STM32的选项的问题。          根据网上的很多人都会要求把CubeMX降低到某个版本以下,但是一直使用低版本肯定不是解决问题的方法。其实在CLion文档里面就有解决方

    2024年02月05日
    浏览(48)
  • 51单片机项目(9)——基于51单片机的电子琴设计

    简易电子琴设计设计内容: 1.用矩阵键盘代表琴键,至少能弹出8个音符,分别是:音符1.23.4.,5,6,  2.键按下的时间长短表征节拍的长短,用蜂鸣器发出声音 3.数码管显示出当前音符 4.音量可调 (代码及其工程文件放在最后) 电路图如下: 51单片机电子琴是一种基于51单片机(

    2024年02月09日
    浏览(49)
  • 51单片机项目(7)——基于51单片机的温湿度测量仿真

    本次做的设计,是利用DHT11传感器,测量环境的温度以及湿度,同时具备温度报警的功能:利用两个按键,设置温度阈值的加和减,当所测温度大于温度阈值的时候,蜂鸣器就会响起,进行报警提示。 同时系统还有一个LCD1602屏幕,用于显示实时的温度湿度,还可以显示温度阈

    2024年02月10日
    浏览(51)
  • 单片机项目分享 单片机(stm32)远程智能宠物喂养系统 - 物联网 esp8266

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月19日
    浏览(67)
  • 单片机项目分享 单片机 图像分类 智能识别机器人 - 物联网 深度学习 AI

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年01月21日
    浏览(69)
  • 单片机项目分享 stm32机器视觉的人脸识别系统 - 单片机 物联网 嵌入式

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年01月22日
    浏览(84)
  • 单片机项目分享 基于stm32的便携用电功率统计系统 -物联网 嵌入式 单片机

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月19日
    浏览(113)
  • 基于51单片机的项目作品汇总

     篇记录下自己做的项目作品,作品有实物也有仿真,以实物居多,主要是以单片机为主,单片机有HC32,STM32,STC,51等,本人从事单片机行业5年,拥有丰富的经验。也涉及QT,LVGL,嵌入式,IPC等,如有需求,请私信。 注:仿真文件是以protues8.13版本画的仿真图,低版本自行修改

    2024年02月07日
    浏览(33)
  • 单片机项目分享 基于Stm32的家庭智能监控系统 - 单片机 图像识别 人体检测 AI

    hr style=\\\" border:solid; width:100px; height:1px;\\\" color=#000000 size=1\\\" 🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最

    2024年01月16日
    浏览(74)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包