基于STM32单片机电子相册设计全套资料

news2025/1/17 6:00:13

资料编号:188

功能介绍:

本系统采用STM32f103单片机通过SPI接口读取sd卡模块中的图片数据。并在单片机为sd卡模块生成fat文件系统。方便读取sd卡中的文件信息。将Bmp格式的图片存放到sd卡的picture文件夹中,然后单片机进行Bmp解码,将解码信息通过TFT1.8寸的液晶屏显示,即可将picture中的图片文件显示出来。按键功能有浏览缩放反转,既可以通过按键来切换图片显示,并且可以调整图片的大小以及图片的显示方向。本系统采用的技术要点有fat文件系统,SPI液晶屏驱动,BMP图片解码,Sd卡驱动。使用本系统时,将Bmp格式的图片放到picture文件夹中即可。

程序源文件:  用 keil5软件打开

电路图源文件:用 Altiumdesigner 软件打开

下面是部分程序展示:

 

void LCD_GPIO_Init(void)
{

    GPIO_InitTypeDef  GPIO_InitStructure;
          
    RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB ,ENABLE);
    
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0| GPIO_Pin_10| GPIO_Pin_1;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_Init(GPIOB, &GPIO_InitStructure);
      
    
        RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA ,ENABLE);
    
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4| GPIO_Pin_5| GPIO_Pin_7;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_Init(GPIOA, &GPIO_InitStructure);
}
//向SPI总线传输一个8位数据
void  SPI_WriteData(u8 Data)
{
    unsigned char i=0;
    for(i=8;i>0;i--)
    {
        if(Data&0x80)    
      LCD_SDA_SET; //输出数据
      else LCD_SDA_CLR;
       
      LCD_SCL_CLR;       
      LCD_SCL_SET;
      Data<<=1; 
    }
}

//向液晶屏写一个8位指令
void Lcd_WriteIndex(u8 Index)
{
   //SPI 写命令时序开始
   LCD_CS_CLR;
   LCD_RS_CLR;
     SPI_WriteData(Index);
   LCD_CS_SET;
}

 

 下面是该资料分享下载链接:

https://pan.baidu.com/s/1xXhEdZzJc3p1MPWs3I-70w?pwd=a8kt​​​​​​​

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/44670.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

GEE批量下载 Python本地快速下载GEE数据(比网页版保存到网盘再下载快几十倍,尤其是在下载几十年的长时间系列数据时,速度提升更加明显)

前言 可根据研究区直接裁剪数据以及进行一些计算处理后再下载&#xff0c;GEE成为了大家下载数据的重要途径&#xff0c;然而直接通过官网网页将数据先保存到网盘再下载的下载方法速度太慢&#xff0c;新号速度还好&#xff0c;越用速度越来越慢&#xff0c;本文提供了一种直接…

DolphinScheduler 机器学习工作流预测今年 FIFA 世界杯冠军大概率是荷兰!

点击蓝字&#xff0c;关注我们作者 | DolphinScheduler Committer 周捷光2022 FIFA 世界杯火热进行中&#xff01;这段时间&#xff0c;这场盛宴吸引了全球球迷的目光。除了让人心跳加快的赛况和被大家调侃像馄饨皮的吉祥物之外&#xff0c;预测和投注哪支队伍将会夺冠绝对是球…

Antd中Table列表行默认包含修改及删除功能的封装

一、前言 ant-design是非常不错、方便的一款前端组件库&#xff0c;而这次用到的ProComponents则是在 Ant Design 上进行了自己的封装&#xff0c;更加易用&#xff0c;与 Ant Design 设计体系一脉相承&#xff0c;无缝对接 antd 项目&#xff0c;样式风格与 antd 一脉相承&am…

Java:多线程基础(二)-线程生命周期

目录 线程生命周期 Thread类的常用方法 构造方法 静态方法 常用实例方法 线程生命周期 线程有其创建、就绪、运行、阻塞、死亡的过程&#xff0c;将其称之为“线程的生命周期”。如下图所示&#xff0c; 对应以上5个状态&#xff0c;jdk-Thread类的源码中定义了枚举类Stat…

计算机网络第五章知识点回顾(自顶向下)

1. 网络层控制面 1.1 网络层功能 1.2选路问题 选路问题的描述&#xff1a; 给定一组路由器和连接路由器的链路&#xff0c;寻找一条从源路由器到目的路由器的最佳路径。 1.3 什么是最佳路径&#xff1f; 1.4 图抽象 1.5 选路算法分类 1.6 链路状态&#xff08;LS&#xff0…

“生成式技术”正在颠覆人类创作!

整理 | 王启隆在过去的半年里&#xff0c;AI 写小说、绘画和剪视频等热点新闻火爆全球&#xff0c;现在只需要在键盘上敲几个关键词&#xff0c;AI 就能在烧着我们显卡的同时画出一幅幅优美的图画&#xff0c;一个全新的应用世界向未来的初创公司敞开了大门。人类现在拥有着一大…

碳中和专利创新专题:各省市县专利面板(原始文件)、低碳专利授权数等多指标数据

一、各省市县专利面板含原始文件 1、数据来源&#xff1a;国家知识产权局 2、时间跨度&#xff1a;1985-2019年 3、区域范围&#xff1a;全国 4、指标说明&#xff1a; 来源 序号 标题 合享价值度 链接到incoPat 公开&#xff08;公告&#xff09;号 公开&#xff08…

数据结构之线性表中的栈和队列【详解】

文章目录引言&#xff1a;栈和队列的讲解&#xff08;一、&#xff09;什么是栈1.栈的概念、结构和图解&#xff1a;&#xff08;1.&#xff09;顺序表和链表的对比&#xff08;严格来说这两个结构是相辅相成的&#xff09;&#xff08;2.&#xff09;栈的概念和结构&#xff0…

[MyBatis]一级缓存/二级缓存/三方缓存

缓存是一种临时存储少量数据至内存或者是磁盘的一种技术.减少数据的加载次数,可以降低工作量,提高程序响应速度 缓存的重要性是不言而喻的。mybatis的缓存将相同查询条件的SQL语句执行一遍后所得到的结果存在内存或者某种缓存介质当中&#xff0c;当下次遇到一模一样的查询SQL时…

[附源码]Python计算机毕业设计Djangossm新能源电动汽车充电桩服务APP

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

UICollectionView

文章目录前言基础概念UICollectionView与相关对象关系注意事项强大的控件相关的类重新使用视图提高性能例子一些方法前言 本篇&#xff1a;进行UICollectionView的学习 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 基础 概念 UICollectionView是我…

【毕业设计】31-基于单片机的农业蔬菜大棚温度自动控制系统设计(原理图工程+源码工程+仿真工程+答辩论文+答辩PPT)

typora-root-url: ./ 【毕业设计】31-基于单片机的农业蔬菜大棚温度自动控制系统设计&#xff08;原理图工程源码工程仿真工程答辩论文答辩PPT&#xff09; 文章目录typora-root-url: ./【毕业设计】31-基于单片机的农业蔬菜大棚温度自动控制系统设计&#xff08;原理图工程源…

NetCore OpenIdConnect验证为什么要设置Authority?

在使用Identity Server作Identity Provider的时候&#xff0c;我们在NetCore的ConfigureServices((IServiceCollection services))方法中,常需要指定options的Authority&#xff0c;如下代码所示&#xff1a; 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 …

基于PHP+MYSQL酒店管理系统的设计与开发

随着人们生活条件的提高,旅游和出差已经成了家常便饭,但是因为他向异地所以第一个要解决的问题就是吃住问题,吃先对是比较好解决的一个问题,随便一个超市或者饭店甚至地摊就能解决这一问题,但是总不能露宿街头吧,所以很多人在到达目的地的第一时间就是去寻找一个能够入住的酒店…

一文彻底搞懂Mysql索引优化

专属小彩蛋&#xff1a;前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站&#xff08;前言 - 床长人工智能教程&#xff09; 目录 一、索引介绍 二、性能分析 三、查询优化 一、索引介绍…

Python使用矩阵分解法推荐系统找到类似的音乐

这篇文章是如何使用几种不同的矩阵分解算法计算相关艺术家。最近我们被客户要求撰写关于的矩阵分解法推荐系统研究报告&#xff0c;包括一些图形和统计输出。代码用Python编写&#xff0c;以交互方式可视化结果。 加载数据 这可以使用Pandas加载到稀疏矩阵中&#xff1a; # r…

Jmeter 使用BeanShell断言,实现自动获取文章列表,并判断文章是否为当天发布的

系列文章目录 提示&#xff1a;阅读本章之前&#xff0c;请先阅读目录 文章目录系列文章目录前言一、正则表达式提取器&#xff0c;提取所有文章id二、循环控制器&#xff0c;读取每篇文章的创建时间三、JSON提取器&#xff0c;提取创建时间&#xff0c;然后进行判断四、运行结…

Java设计模式七大原则-里氏替换原则

里氏替换原则 OO中的继承性的思考和说明 继承包含这样一层含义&#xff1a;父类中凡是已经实现好的方法&#xff0c;实际上是在设定规范和契约&#xff0c;虽然它不强制要求所有的子类必须遵循这些契约&#xff0c;但是如果子类对这些已经实现的方法任意修改&#xff0c;就会对…

1540_AURIX_TriCore内核架构_FPU

全部学习汇总&#xff1a; GreyZhang/g_tricore_architecture: some learning note about tricore architecture. (github.com) 这一次看一下TriCore的FPU&#xff0c;浮点处理单元。说起来&#xff0c;这算是很多MCU中的一个高级模块了。 1. 在TriCore中FPU其实是可选实现的&a…