基于STM32F411使用SPI+DMA驱动LCD

news2025/9/19 20:54:31

先看效果

F411CE 硬件SPI+DMA驱动LCD

基于HAL库

其实HAL库我用不太习惯,一直也是用的标准库

但HAL库确实是好上手一些,就迅速创建一个新的template

这次就当尝试一下吧,因为用的比较少,我会记录的详细

如图点击,创建新工程

在这里插入图片描述

搜索型号,双击选择

在这里插入图片描述

左边这些都能点开,具体点开就知道了

在这里插入图片描述

Systemcore Core 如图选择

选择的是外部高速时钟,陶瓷晶振

这里设置是为了等下配置系统时钟

在这里插入图片描述

SYS 打开SWD接口,不配置的话芯片的SWD口会锁住

如果你恰好没配置,点击查看解决办法

在这里插入图片描述

Connectivity SPI设置主机全双工(你也可以选别的)

在这里插入图片描述

Frame Format 这个默认摩托罗拉

Data Size 数据位

First Bit 选择先发高位或者低位,MSB为高位

Prescaler 系统分频,这个影响到SPI速度,后面还会提一次

CPOL 时钟空闲是高电平或低电平

CPHA 奇数偶数采样选择,这两个是SPI的基础知识

CRC校验这里不开启

使能使用的软件控制,我其实是直接拉的GND

在这里插入图片描述

DMA配置 点击ADD添加

Stram流,其实就是通道,具体的流通道请看通道映射

Direction 方向选择,无非就内存到外设,外设到内存

Priority 优先级 随便选了没什么影响

increment address 地址递增 因为我要往外设发数组里面的值,所以我本身(Memory)要设置为递增

Datawidth 数据宽度,8位 16位 32位 这里主从宽度要相同

mode模式,可设置为正常或循环,正常就是只发一次

在这里插入图片描述

时钟设置,直接拉到100M

在这里插入图片描述

拉完到100M,再回过头来看这个SPI速度就到了主频的一半

在这里插入图片描述

生成

Project Name 工程名字
Project location 路径
IDE选择MDK-ARM 也就是keil

在这里插入图片描述

生成独立的ch文件方便查看

在这里插入图片描述

全部配置完成点击GENERATE CODE生成工程即可

打开工程需要移植LCD驱动,在网上找的一个

在这里插入图片描述

文件免费分析,我会整理好放到我的gitee

这里有个坑,我用DMA发送,发送一次后标志位一直是busy

在网上找了好久 后来调用1ms延时+HAL_SPI_Abort(&hspi1)

函数解决

在这里插入图片描述

全套流程梳理

用cubemx创建spi+dma模板,移植LCD驱动,接好硬件

工程免费分享,评论区贴到gitee

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

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

相关文章

火山引擎DataLeap数据调度实例的 DAG 优化方案

更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,并进入官方交流群 实例 DAG 介绍 DataLeap 是火山引擎自研的一站式大数据中台解决方案,集数据集成、开发、运维、治理、资产管理能力于一身的大数据研发治理套件。在平台中&…

从0到1完成一个Vue后台管理项目(四、引入axios、配置路由)

往期 从0到1完成一个Vue后台管理项目(一、创建项目) 从0到1完成一个Vue后台管理项目(二、使用element-ui) 从0到1完成一个Vue后台管理项目(三、使用SCSS/LESS,安装图标库) axios axios就是…

手握智算中心“绿洲”,毫末跑在中美自动驾驶长跑第一线

作者 | 白日梦想家 编辑 | 王博2022年过去,数据驱动成为自动驾驶演进共识。沿着数据驱动这条路线,自动驾驶加速迈入智算时代。 智算中心应运而生。 实际上,将智算引入自动驾驶的开先河者是特斯拉,其率先发布了专用于自动驾驶训练的…

登录与授权

目录 1.获取用户信息 1.button.open-type.getUserInfo 2.open-data组件 3.wx.getUserProfile(Object object) 头像昵称填写功能 2.登录 登录的流程图 sessin_key 3.授权 wx.openSetting wx.getSetting wx.authorize 手机号授权 登录与授权是两个不关联的事情&…

[Leetcode] 相同的树、对称二叉树

相同的树和对称二叉树都可以使用递归实现。相同的树题目链接:https://leetcode.cn/problems/same-tree/solution/xiang-tong-de-shu-by-leetcode-solution/1.1 递归、深度优先搜索使用递归,将问题转换为 --> 判断当前节点是否相同 判断左右子树分别是…

以前不知道字节面试难在哪,现在体验到了,被虐的很惨...

人们都说,互联网寒冬来了,这个时候还在大面积招人的公司,必然是牛逼的公司。而这个时候勇敢跳槽的人,必然是牛逼的人。于是我开始了字节跳动的社招面试。 为了这天,我前一天排老长的队,理了个利落的发型&a…

蚂蚁帮路由器Antbang A3s V2.0刷入OpenWrt/LEDE

参考资料路由器基本常识_冰色阳光的博客-CSDN博客_路由器bootloader是什么https://www.right.com.cn/forum/thread-3191610-1-1.html已知问题刷入OpenWrt/LEDE后,似乎路由器的Reset键不起作用。路由器在启动时,正常会先运行引导程序Breed,然后…

LinuxC—文件系统学习笔记

文件系统 1 目录和文件 1.1 获取文件属性信息stat 相关函数 stat() 得到file指向的文件并将其属性回填到buf中,面对符号链接文件时获取的是所指向的目标文件的属性 /* Get file attributes for FILE and put them in BUF. */ extern int stat (const char *__res…

Jetson nano 入手系列之5—远程可视化访问:jupyter lab与VNC连接

Jetson nano 入手系列之5—远程可视化访问:jupyter lab与VNC1. jupyter lab1.1 安装jupyter lab1.2 配置jupyter_lab1.3 打开jupyter lab1.3.1 ip地址方式打开1.3.2 cmd中ssh方式打开2. vino与VNC Viewer2.1 vino的安装2.2 Desktop Sharing配置与设置2.3 启动vino s…

ICG-DBCO;吲哚菁绿-二苯基环辛炔,荧光染料标记DBCO

中文名:吲哚菁绿-二苯基环辛炔 英文名:ICG-DBCO,ICG-Dibenzocyclooctyne 分子式: C63H64N4O5S 分子量: 989.27 g/mol 外观:绿色粉末 激发发射波长:785/821nm 结构式: ​ 溶解度:有机溶剂/水 储藏方法…

使用无人机 LiDAR 的重叠树冠的新型植被点云密度树分割模型

Paper题目:A Novel Vegetation Point Cloud Density Tree-Segmentation Model for Overlapping Crowns Using UAV LiDAR Abstract 由于常用的冠层高度模型(CHM)的局限性,在具有高密度和重叠树冠的森林生态系统中检测和分割单个树木经常会导致偏差。针对…

Flink 第3章 反压策略

概述Flink 中文网站的讲解https://flink-learning.org.cn/article/detail/138316d1556f8f9d34e517d04d670626涉及内容:网络流控的概念与背景TCP的流控机制Flink TCP-based 反压机制 1.5之前Flink Credit-based 反压机制 1.5及以后总结与思考网络流控的概念与背景为什…

AtCoder Beginner Contest 283 E - Don‘t Isolate Elements

E - Dont Isolate Elements (atcoder.jp)题意:题意:定义孤独的数为,该数上下左右的数都和它相反给定一个01矩阵,每次操作可以把某一行的数取反,问你把该矩阵变成没有孤独的数的最少操作次数是多少思路:一开…

AI降噪的N种数据扩增方法

数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已 基于统计信号处理的传统噪声抑制方法是通过检测持续的背景声,来估计背景噪声,然后通过估计到的背景噪声计算增益因子对带噪语音进行抑制。但这种方式针对规律的稳态噪声比较…

【算法笔记】最近公共祖先(LCA)算法详解

0. 前言 最近公共祖先简称 LCA(Lowest Common Ancestor)。两个节点的最近公共祖先,就是这两个点的公共祖先里面,离根最远的那个。 这种算法应用很广泛,可以很容易解决树上最短路等问题。 为了方便,我们记…

企业内训方案|领导力与执行力/TTT内训师/管理者情商修炼

企业内训方案|领导力与执行力/TTT内训师/管理者情商修炼 》》领导力与执行力 从精兵到强将 高绩效团队协作与跨部门沟通 核心人才的管理与激励 卓越管理者的胜任力提升 MTP中层管理技能提升训练 打造高绩效团队 高效沟通技巧 高绩效团队管理(中高层/中基层&#xf…

CRM帮助企业实现销售自动化

随着互联网技术的发展,各家企业都善用互联网优势发布各种信息,导致潜在客户被各种推销信息所淹没,销售周期延长,企业可以借助CRM有效规范销售流程,帮助企业实现销售自动化。 前言 各行各业的业务流程中似乎都少不了销…

OSPF综合实验(1.5)

目标: 1、首先进行基于172.16.0.0/16的ip地址规划 首先题中有5个区域和一个RIP共需要5个网段 可以借3位划分为8个网段 172.16.0.0/19 area 0 然后将172.16.0.0/19再借6位分为172.16.0.0/25---172.16.31.128 25作为其中前一个骨干ip网段 172.16.0.0/25在用于只…

TCP滑动窗口机制(附图例)

文章目录前言一、滑动窗口的引出二、流量控制2.1 16位窗口大小2.2 发送缓冲区2.3 逐步解析滑动窗口运作三、快重传机制四、拥塞控制(仅供参考)五、延迟应答与捎带应答(略)总结前言 博主个人社区:开发与算法学习社区 博…

测开-刷笔试题时的知识点

圈复杂度(暂缓)复杂度越大,程序越复杂计算公式:V(G) E - N 2E代表控制流边的数量,n代表节点数量V (G) P 1p为判定节点数几种常见的控制流图:Linux文件权限具有四种访问权限:r(可…