嵌入式开发--STM32硬件SPI驱动74HC595

news/2024/11/8 23:48:19/

本篇是硬件SPI口驱动74HC595。
IO口模拟时序软件驱动74HC595见这一篇文章:嵌入式开发–IO口扩展–74HC595

硬件连接如下:

只用了一个74HC595,如果需要多个74HC595级联,参考前面的链接,里面有电路,不需要额外的信号线,就可以连接多个74HC595。
在这里插入图片描述

CubeMX中的设置如下:

用的是SPI1,驱动74HC595时,主机不需要输入,所以MISO未使用
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
特别注意,默认的数据宽度是4bits,需要改为8bits
74HC595最高的速度可以达到50MHz,所以,这里的波特率可以尽量设高些,10MHz到头了。
其他都是常规设置,不哆嗦,需要教程的看这一篇: 嵌入式开发–CubeMX使用入门教程
设置好以后,生成工程。

代码

Keil中的编程很简单,其实就是调用一个函数 HAL_SPI_Transmit(&hspi1, &temp, 1, 1000)。
下面的代码是流水灯演示

  while(1){for(i=0; i<8; i++){temp = 1<<i;HAL_SPI_Transmit(&hspi1, &temp, 1, 1000);HAL_Delay(300);}}

传输时间

在这里插入图片描述从开始的高电平准备大约是9.5us,到最后发送完成时间是11.36us,花费了不到2us时间,如果是是软件配置IO口来模拟驱动的话,时间会远远超过这个时间,可见硬件的效率还是要高很多的。


http://www.ppmy.cn/news/2040.html

相关文章

防火墙nat理论讲解

♥️作者&#xff1a;小刘在C站 ♥️每天分享云计算网络运维课堂笔记&#xff0c;疫情之下&#xff0c;你我素未谋面&#xff0c;但你一定要平平安安&#xff0c;一 起努力&#xff0c;共赴美好人生&#xff01; ♥️夕阳下&#xff0c;是最美的&#xff0c;绽放&#xff0c;愿…

Unity 动画系统(Animation,Animator,Timeline)

文章目录1. Animation1.1 创建Animation1.2 Animation 属性2. Animator2.1 Animator 组件2.2 Animation 状态2.3 状态控制参数2.4 代码中控制状态3. 代码控制动画的播放/暂停/继续播放1. Animation 1.1 创建Animation 选中需要添加动画的物体&#xff0c;打开Animation面板 …

ArgoDB 5.1 正式发布:多模融合、实时分析和数据安全多重升级

Transwarp ArgoDB是星环科技自主研发的高性能分布式分析型数据库&#xff0c;在PB级数据量上提供极致的数据分析能力。ArgoDB支持标准SQL语法和分布式事务&#xff0c;提供高并发高速数据写入、复杂查询、多模分析、数据联邦、隐私计算和动态脱敏等能力。基于星环科技ArgoDB数据…

Java高效率复习-MySQL上篇[MySQL]

前言 本文章是用于总结尚硅谷MySQL教学视频的记录文章&#xff0c;主要用于复习&#xff0c;非商用 原视频连接&#xff1a;https://www.bilibili.com/video/BV1iq4y1u7vj/?p21&spm_id_frompageDriver&vd_sourcec4ecde834521bad789baa9ee29af1f6c https://www.bilib…

[附源码]Python计算机毕业设计SSM教师职称资料管理系统(程序+LW)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

第七届 Sky Hackathon 笔记集合贴

Alex_McAvoy--------NVIDIA 7th SkyHackathon&#xff08;二&#xff09;开发套件的安装与测试 Alex_McAvoy--------NVIDIA 7th SkyHackathon&#xff08;三&#xff09;语音数据集的制作 Alex_McAvoy--------NVIDIA 7th SkyHackathon&#xff08;四&#xff09;Nemo ASR 模型训…

Android -- 每日一问:你在Android开发中遇到的技术难题是什么,你是怎么解决的?

经典回答 一个工作过几年的程序员肯定会有工作中遇到技术难点问题&#xff0c;虽然这个问题有可能对于别人不是技术难点&#xff0c;但只要对于当时的你是技术难点&#xff0c;只要让你抓耳挠腮毫无头绪就往往会在你的大脑中留下深刻的印象。 这个问题&#xff0c;我也比较难…

JDK19都出来了~是时候梳理清楚JDK的各个版本的特性了【JDK9特性讲解】

JDK各个版本特性讲解-JDK9特性 lecture&#xff1a;波哥 一、JDK版本特性 JAVA8 及之前,版本都是特性驱动的版本更新,就是有重大的特性产生,然后进行更新 JAVA9开始,JDK开始以时间为驱动进行更新,以半年为周期,到时即更新,三年出一个长期支持版,其他都是短暂的版本 目前的长期支…