首页 > 其他分享 >物联网智慧教室项目(二)

物联网智慧教室项目(二)

时间:2024-09-21 13:48:42浏览次数:3  
标签:配置 智慧 原理图 教室 联网 SPI 连接 外设 时钟

D2 智慧教室项目驱动开发

一、环境监控驱动开发

在这里插入图片描述

外设驱动开发流程

Created with Raphaël 2.3.0 原理图分析 数据手册分析 外设配置

(一)时钟&SWD配置

原理图分析

时钟原理图

如下图所示,STM32F407外部高速晶振为25MHz,分别连接到PH0和PH1引脚!

在这里插入图片描述

SWD原理图

如下图所示,STM32F407仿真接口SWD分别连接到PA13和PA14引脚!

在这里插入图片描述

外设配置

时钟外设配置
使能时钟源
  1. 选择RCC外设
  2. 选择高速时钟为外部时钟源
  3. PH0和PH1引脚自动高亮

在这里插入图片描述

配置时钟树
  1. 锁相环时钟源为25MHz外部高速时钟
  2. 高速时钟分频系数配置为25,输出为1MHz
  3. 倍频系数配置为336
  4. 分频系数配置为2,输出为168MHz
  5. 系统时钟源选择PLL
  6. APB1配置为4分频,为42MHz
  7. APB2配置为2分频,为84MHz
    在这里插入图片描述
SWD外设配置
  1. 选择SYS外设
  2. 配置debug接口为串行接口(SWD)
  3. 引脚自动高亮

在这里插入图片描述

(二)串口配置

原理图分析

Zigbee通信接口
  1. J28为Zigbee模块底座,其中Z_W_R和Z_W_T分别Zigbee串行通信接口
  2. Z_W_R和Z_W_T网络连接到J13,通过J13选择连接STM32还是USB转串口,我们选择连接到STM32上的USART1(PA9和PA10)

在这里插入图片描述

在这里插入图片描述

串行调试接口

如下图所示:

  1. 板载两个串行通信接口,串口1连接到USART1,串口2连接到USART3,我们选择USART3
  2. 由于USART3可以用于串口和485通信,我们选择485必须要把CON4和CON5拨到串口通信

在这里插入图片描述

外设配置

USART1配置
  1. 配置PA9和PA10为USART1模式
  2. 打开USART1,配置为异步通信模式

在这里插入图片描述

3.使能NVIC,优先级先默认为0

在这里插入图片描述

USART3配置
  1. 配置PB10和PB11为USART3模式
  2. 打开USART3外设,并配置为异步通信模式

在这里插入图片描述

(三)GPIO配置

原理图分析

  1. PF7 PF8 PF9 PF10 控制板载的D6 D7 D8 D9
  2. PF6控制板载蜂鸣器

在这里插入图片描述

GPIO外设配置

  1. 配置PF6-PF10为输出模式
  2. PF6默认输出低
  3. PF7-PF10默认输出高

在这里插入图片描述

二、人机交互驱动开发

在这里插入图片描述

(一)FSMC

1、SRAM

原理图分析

通过下图所示:

  1. 采用IS61LV51216 SRM 为1MB,其实为了节约成本焊接的为IS61LV25616 为512KB
  2. 占用地址总线为18bit,数据总线为16bit
  3. 内存访问起始地址为0x6800 0000
    在这里插入图片描述
数据手册分析
read周期

地址建立时间 <7ns

数据建立+保持时间 = 7 + 2.5ns = 10ns

在这里插入图片描述

write周期

数据建立周期 = 5 + 3 = 8 + 5ns = 13ns

在这里插入图片描述

FSMC读写周期
read

在这里插入图片描述

write

在这里插入图片描述

外设配置
  1. 打开FSMC外设
  2. 配置FSMC
    1. 选择存储块为NE3
    2. 内存类型为SRAM
    3. 寻址长度为18bit
    4. 数据宽度为16bit
  3. 配置FSMC时序
    1. 地址建立时间为1分频 1/168 = 0.005 = 5ns
    2. 数据建立时间为3分频

在这里插入图片描述

  1. 字节访问使能
    在这里插入图片描述

2、LCD

原理图分析
  1. 如下图所示,LCD采用8080接口,CS片选,D/C命令/数据切换,RD读操作,WR写操作,D[23:0]数据总线

  1. 如下图所示,数据总线D[0:15]连接FSMC总线接口处,RS起始就D/C接口,连接到FSMC地址总线A0,CS片选总线连接到FSMC_NE4上,WR写操作连接FSMC_NWE总线上,RD读操作总线连接到FSMC_NOE上,背光控制连接到PC7上

在这里插入图片描述

  1. 写命令操作0x6C00 0000
  2. 写数据操作0x6C00 0002
数据手册分析
  1. 分析LCD驱动芯片时序图,计算得出地址和数据总线建立时间

    地址保持周期 = 2ns

    数据建立周期 = 12 + 1ns = 15ns

    在这里插入图片描述

外设配置
  1. 打开FSMC外设
  2. 配置FSMC参数
    1. 内存块为NE4
    2. 内存类型为LCD
    3. LCD数据/命令切换映射到A0
    4. 数据宽度为16bit

在这里插入图片描述

  1. 配置PC7为输出模式
    1. 上电默认输出高电平
      在这里插入图片描述

SPI

FLASH

原理图分析
  1. 如下图所示,SPI接口,CS连接到PH2,MISO连接到PB4,MOSI连接到PB5,CLK连接到PA5

在这里插入图片描述

数据手册分析

1.时钟极性及相位

通过时序图分析,SPI CLK 高有效 时钟极性为高

时钟边沿为奇数边沿
在这里插入图片描述

2.SPI速率

满足数据传输速率,最大不能超过33MHz

在这里插入图片描述

外设配置
  1. 配置SPI时钟和数据引脚
  2. 配置SPI为全双工主机模式
  3. 配置SPI参数
    1. 通信速率为系统时钟4分频
    2. 时钟极性为低电平
    3. 相位为奇数边沿

在这里插入图片描述

  1. 配置片选引脚PH2默认输出高

Touch

原理图分析
  1. 如下图所示,SPI接口,CS连接到PG15,MISO连接到PI2,MOSI连接到PI3,SCK连接到PI1
  2. 触摸中断连接到PG7

在这里插入图片描述

数据手册分析
  1. 通过计算TCH+TCL得出SPI通信速率
  2. 通过时序图分析,SPI不工作时为低电平

在这里插入图片描述

  1. 时钟边沿为奇数边沿
  2. 通信速率最小为400ns,大概2Mbit/S左右

在这里插入图片描述

外设配置
  1. 配置SPI时钟和数据引脚
  2. 配置SPI为全双工主机模式
  3. 配置SPI参数
    1. 通信速率为系统时钟32分频
    2. 时钟极性为低电平
    3. 相位为奇数边沿

在这里插入图片描述

  1. 配置SPI片选引脚
    1. 配置PG15为输出模式
    2. 配置PG15上电默认输出高,SPI低电平有效

在这里插入图片描述

三、WebServer驱动开发

在这里插入图片描述

(一)SDIO

原理图分析

根据原理图分析,我们采用SD总线,4bit

配置CLK、DAT0-3
在这里插入图片描述

在这里插入图片描述

外设配置

  1. 打开SDIO外设
  2. 配置SD总线为4bit位宽
  3. 配置DMA接收和发送

在这里插入图片描述

  1. 使能sdio全局中断 重点配置DMA优先级小于SDIO优先级

在这里插入图片描述

(二)ETH

原理图分析

  1. 如下图所示,以太网PHY采用DP83848芯片,通信模式采用RMII接口

  2. 配置MDC、CLK、MDIO、DV、RXD0、RXD1;EN、TXD0、TXD1

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

数据手册分析

Created with Raphaël 2.3.0 配置PHY地址为0x01 配置PHYSTS寄存器地址为0x10 配置Speed Status 掩码为0x0002 配置Duplex Status 掩码为0x0004

PHY地址

在这里插入图片描述

PHY寄存器

BMCR

在这里插入图片描述

BMSR

在这里插入图片描述

PHYSTS

在这里插入图片描述

外设配置

在这里插入图片描述

在这里插入图片描述

四、FreeRTOS配置及任务创建

(一)freeRTOS配置

配置内核定时器

由于我们采用STM32HAL库进行开发,HAL库内部使用systick定时器用于系统延时功能,而FreeRTOS也需要一个定时器用于操作系统内核调度使用, 顾需要修改HAL定时器时钟源

  1. 打开SYS选项
  2. 配置时钟源为TIM1

在这里插入图片描述

配置FreeRTOS内核功能

  • 多数功能在后续程序设计中,需要根据具体功能,进行配置
  • 前期只需要配置动态内存空间和创建开始任务就可以
配置动态内存分配空间
  1. 采用FreeRTOS动态内存分配,开发效率高!顾我们程序内存使用,多数使用动态内存分配方式,分配动态内存总空间为23k=23552byte
    2. 使能FreeRTOS功能
    3. 分配内存空间为40960

在这里插入图片描述

(二)任务创建

任务及优先级划分

Created with Raphaël 2.3.0 WebServer 高 Touch Zigbee GUI 低

任务堆栈划分

Created with Raphaël 2.3.0 WebServer 16K Touch 4K Zigbee 1K GUI 8K

1、中断优先级分配

在这里插入图片描述

2、printf重定向

  1. 在main.c文件内添加fputc函数,采用USART3作为调试接口
int fputc(int ch, FILE *p)
{
	while(!(USART1->SR & (1<<7)));
	
	USART1->DR = ch;
	
	return ch;
}
  1. 在touch任务内打印启动信息在这里插入图片描述在这里插入图片描述

五、lwIP配置及网卡驱动

(一)lwIP配置

1、IP组网配置

  1. 使能lwIP
  2. 关闭DHCP服务
  3. 配置IP地址信息

在这里插入图片描述

2、lwIP参数配置

  1. 分配10k内存空间
  2. 使能链路检测回调功能

在这里插入图片描述

(二)ping测试

配置笔记本的网段和STM32开发板的网段一致

在这里插入图片描述

在这里插入图片描述

以太网断线检测

ethernetif.c
/* USER CODE BEGIN 8 */
/**
  * @brief  This function notify user about link status changement.
  * @param  netif: the network interface
  * @retval None
  */
__weak void ethernetif_notify_conn_changed(struct netif *netif)
{
  /* NOTE : This is function could be implemented in user file 
            when the callback is needed,
  */
	
	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");
		
	}

}

两种情况,一种是设备通电时断开网线,一种是网线没插,设备通电

  • 第一种, 断开网线之后再插入,通过ping命令进行检测
  • 第二种,断开网线,设备通电,当设备正常工作后,再插入网线,通过ping命令进行检测。

标签:配置,智慧,原理图,教室,联网,SPI,连接,外设,时钟
From: https://blog.csdn.net/weixin_49763156/article/details/142407855

相关文章

  • 基于大数据技术的智慧居家养老服务平台
    项目介绍大数据分析是现下比较热门的词汇,通过分析之后可以得到更多深入且有价值的信息。现实的科技手段中,越来越多的应用都会涉及到大数据随着大数据时代的到来,数据挖掘、分析与应用成为多个行业的关键,本课题首先介绍了网络爬虫的基本概念以及技术实现方法,重点关注爬虫的......
  • 基于微信小程序的智慧旅游平台的设计与开发-计算机毕业设计源码+LW文档
    摘要随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了智慧旅游平台开发微信小程序的开发全过程。通过分析智慧旅游平台开发微信小程序管理的不足,创建了一个计算机管理智慧旅游平台开发微信小程序的方案。文章介绍了智慧旅游平台开发......
  • 【F153】基于Springboot+vue实现的无人智慧超市管理系统
    主营内容:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app等设计与开发。收藏点赞不迷路,关注作者有好处项目描述本系统结合现今主流管理系统的功能模块以及设计方式进行分析,使用Java语言和Springboot框架进行开发设计,具体研究......
  • 人工智能无法取代人类智慧,别再高估它了
    近年来,管理知识型员工的难题日益凸显。随着知识型员工的比例激增,企业管理者面临前所未有的挑战。许多文章都在谈论知识型员工如何通过智力资本、创新和学习为企业增值,但即便如此,领导这些员工仍然让管理者们感到棘手。管理从来不是一门精确的科学,不同文化、环境和个体之间的差异,令这......
  • AIGC 浪潮下,互联网产品经理如何顺势而上?
    在当今科技飞速发展的浪潮中,AIGC(人工智能生成内容)正以前所未有的速度改变着互联网的格局。对于互联网产品经理而言,这既是一个充满无限可能的机遇,也是需要积极应对的挑战。那么,在AIGC时代,互联网产品经理如何借势升级呢?一、深入理解AIGC技术技术原理与能力边界作为互联......
  • java计算机毕业设计酒店物联网平台系统(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着科技的飞速发展,物联网技术正逐步渗透到各行各业,其中酒店业作为服务业的重要组成部分,其智能化转型已成为不可逆转的趋势。传统酒店管理模式面临着......
  • 智慧安防监控EasyCVR视频汇聚管理平台如何修改视频流分辨率?
    智慧安防监控EasyCVR视频管理平台能在复杂的网络环境中,将前端监控设备进行统一集中接入与汇聚管理。EasyCVR平台支持H.264/H.265视频压缩技术,可在4G/5G/WIFI/宽带等网络环境下,传输720P/1080P/2K/4K高清视频。视频流经平台处理后,能对外分发RTMP、RTSP、HTTP-FLV、WebSocket-FLV、HL......
  • 农田灌溉水质监测物联网解决方案
    在农业生产中,确保灌溉水质的优良是非常重要的。优质的灌溉水可以为农作物提供必要的水分和养分,促进其健康生长。这就需要对灌溉水源进行定期检测,评估其是否适合用于农田灌溉,并根据检测结果采取相应的措施来改善水质或选择其他水源。 《农田灌溉水质标准》(GB5084-2021)要求;对经人为......
  • 传统到AI 大数据分析的演变,颠覆智慧水电的未来?
    传统到AI大数据分析的演变,颠覆智慧水电的未来?前言传统到AI大数据分析的演变前言水电作为一种重要的能源形式,一直在我们的生活中扮演着至关重要的角色。而如今,随着科技的飞速发展,智慧水电和AI大数据应用的出现,正在给这个领域带来一场前所未有的变革。想象一下,当......
  • 【源码文档全套】基于微信小程序的智慧农业农产品商城-uniapp安卓(开题答辩实训报告论
        博主介绍:......