普中STM32-PZ6806L开发板(HAL库函数实现-7段共阳数码管数字显示)

简介

通过操作GPIO输出电平实现驱动单个共阳数码管 0 ~ F的显示。

电路原理图

数码管电路原理图
在这里插入图片描述
数码管与主芯片电路原理图
在这里插入图片描述

其他知识

1. 由原理图可知, 共阳极已接VCC, 所以只需要控制GPIO输出低电平就可以点亮7 + . 的数码管了.
2. 驱动管与主芯片引脚对应关系A -> PC0、B->PC1 .... DP->PC7, 下图是驱动的每一段示意图

在这里插入图片描述
3. 共阳数码管段码
通过下面的表我们能看出来从0 ~ F显示需要点亮的数码管,共阳数码管, 低电平点亮, 0就是点亮,1是熄灭, 也看出来为什么要有些字母小写, 因为跟数字段码重复了, 例如b跟d的大写字母段码与8和0段码重复

ABCDEFGDPHEX
0000000110xC0
1100111110xF9
2001001010xA4
3000011010xB0
4100110010x99
5010010010x92
6010000010x82
7000111110xF8
8000000010x80
9000110010x98
A000100010x88
b110000010x83
C011000110xC6
d100001010xA1
E011000010x86
F011100010x8E

实现步骤

创建项目

与上篇讲到的8个LED的电路一致, 初始化参考 普中STM32-PZ6806L开发板(HAL库函数实现-批量操作GPIO引脚实现跑马灯)

添加用户代码

segment_display.c

#define SEG_PORT GPIOC#define SEG_MAX_NUMBER 15  // 显示最大数字
#define SEG_MANY_NUMBER_COUNT 16 // 显示数字个数
#define SEG_ALL_SEG_CODE 0xFF // 全段选择的码
uint8_t seg_code[SEG_MANY_NUMBER_COUNT] = { 0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8,0x80, 0x98, 0x88, 0x83, 0xC6, 0xA1, 0x86, 0x8E };void Seg_ClearDisplay()
{HAL_GPIO_WritePin(SEG_PORT, SEG_ALL_SEG_CODE, GPIO_PIN_SET);
}void Seg_NumberDisplay(uint16_t num)
{if (num > SEG_MAX_NUMBER){return;}Seg_ClearDisplay();HAL_GPIO_WritePin(SEG_PORT, ~seg_code[num], GPIO_PIN_RESET);
}void Seg_DoForeachNumberAction(uint32_t delay_ms, uint16_t time)
{int i = 0;while (time--){for (i = 0; i < SEG_MANY_NUMBER_COUNT; ++i){Seg_NumberDisplay(i);HAL_Delay(delay_ms);}}
}

main.c

int main()
{
...
while(1)
{Seg_DoForeachNumberAction(1000, 1);
}
...
}

代码解读

HAL_GPIO_WritePin(SEG_PORT, ~seg_code[num], GPIO_PIN_RESET);
GPIO_PIN_RESET : 低电平点亮, GPIO_PIN_RESET就是点亮
~seg_code[num] : 段码是按照引脚输出进行取值的, 而现在是选择引脚, 所以与逻辑刚好相反, 所以要按位取反

共赏

普中STM32-PZ6806L开发板(HAL库函数实现-7段共阳数码管数字显示)

代码

不需要下载, 基本代码上面都提供了

参考

普中STM32-PZ6806L开发板(HAL库函数实现-批量操作GPIO引脚实现跑马灯)

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

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

相关文章

408数据结构常考算法基础训练

408相关&#xff1a; 408数据结构错题知识点拾遗 408数据结构常考算法基础训练 408计算机组成原理错题知识点拾遗408操作系统错题知识点拾遗等待完善408计算机网络错题知识点拾遗 408计算机网络各层协议简记等待完善 该训练营为蓝蓝考研&#xff08;蓝颜知己&#xff09;的算…

听GPT 讲Rust源代码--src/tools(29)

File: rust/src/tools/clippy/clippy_lints/src/unused_peekable.rs 在Rust源代码中&#xff0c;rust/src/tools/clippy/clippy_lints/src/unused_peekable.rs这个文件是Clippy工具中一个特定的Lint规则的实现文件&#xff0c;用于检测未使用的Peekable迭代器。 Peekable迭代器…

kubeadm开快速的搭建一个k8s集群

kubeadm开快速的搭建一个k8s集群 二进制适合大集群&#xff0c;50台以上主机 kubeadm更适合中小企业的业务集群。 master节点 20.0.0.92 docker kubelet kubeadm kubectl flannel node1 20.0.0. 94 docker kubelet kubeadm kubectl flanne node2 20.0.0.03 docker kubelet…

基于YOLOv8深度学习的45种交通标志智能检测与识别系统【python源码+Pyqt5界面+数据集+训练代码】目标检测、深度学习实战

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

cnPuTTY 0.80.0.1—PuTTY Release 0.80中文版本简单说明~~

2023-12-18 官方发布了PuTTY 0.80本次发布主要是针对Terrapin攻击(CVE-2023-48795)的修改发布。 更多详细的内容请查看PuTTY Change Log。 有关Terrapin攻击可用简单参考&#xff1a;警告&#xff01;&#xff01;&#xff01;Terrapin攻击(CVE-2023-48795)~~~ 为了缓解此漏洞…

mysql 与 支持语言的连接驱动 jdbc connector JAR 包

有位网友问我有没有 mysql jdbc驱动 &#xff0c;我刚开始一脸懵逼&#xff0c;后来明白过来&#xff0c;在网上找了几篇文章看看了解了解&#xff0c;得出如下解决办法&#xff1a; Mysql jdbc 下载&#xff1a; 网址&#xff1a; MySQL :: Download Connector/J 步骤1 &a…

AWS SSM中切换AWS不同的profile

问题 在自己的开发笔记本上面&#xff0c;通过AWS SSM方式访问EC2服务&#xff0c;只需要通过简单的命令就可以访问EC2了&#xff0c;如下&#xff1a; aws ssm start-session --target i-xxxx12350这个命令就是利用aws命令行工具中ssm提供的会话管理能力访问ec2服务&#xf…

Kafka学习笔记1(千峰教育)

Kafka学习笔记1&#xff08;千峰教育&#xff09; 一、为什么使用消息队列1.使用同步的通信方式来解决多个服务之间的通信2.使用异步的通信方式 二、消息队列的流派1.有broker2.无broker 三、Kafka的基本知识1.Kafk2a的安装2.Kafka中的一些基本概念3.创建topic4.发送消息5.消费…

【2023年中国高校大数据挑战赛 】赛题 B DNA 存储中的序列聚类与比对 Python实现

【2023年中国高校大数据挑战赛 】赛题 B DNA 存储中的序列聚类与比对 Python实现 1 题目 赛题 B DNA 存储中的序列聚类与比对 近年来&#xff0c;随着新互联网设备的大量涌入和对其服务需求的指数级增长&#xff0c;越来越多的数据信息被产生与收集。预计到 2021 年&#xf…

网络攻防中应该掌握的进阶工具udp2raw,通过raw socket给UDP包加上TCP或ICMP header,进而绕过UDP屏蔽或QoS

网络攻防中应该掌握的进阶工具udp2raw,通过raw socket给UDP包加上TCP或ICMP header,进而绕过UDP屏蔽或QoS。 udp2raw tunnel,通过raw socket给UDP包加上TCP或ICMP header,进而绕过UDP屏蔽或QoS,或在UDP不稳定的环境下提升稳定性。可以有效防止在使用kcptun或者finalspeed的…

Unreal Engine游戏引擎的优势

在现在这个繁荣的游戏开发行业中&#xff0c;选择合适的游戏引擎是非常重要的。其中&#xff0c;Unreal Engine作为一款功能强大的游戏引擎&#xff0c;在业界广受赞誉。那Unreal Engine游戏引擎究竟有哪些优势&#xff0c;带大家简单的了解一下。 图形渲染技术 Unreal Engin…

gnu工程的编译 - 以libiconv为例

文章目录 gnu工程的编译 - 以libiconv为例概述gnu官方源码包的发布版从官方的代码库直接迁出的git版源码如果安装了360, 需要添加开发相关的目录到信任区生成 configrue 的方法备注END gnu工程的编译 - 以libiconv为例 概述 gnu工程的下载分2种: gnu官方源码包的发布版 这种…

中文版大模型 Token 成本计算器

分享一个轻量的小工具&#xff0c;10MB 左右&#xff0c;能够帮助你直观的了解大模型 Token 的计算方法。 希望能够帮助到想了解或者正在规划模型 API 使用成本的你。 写在前面 之所以折腾这个小工具&#xff0c;是因为有朋友和我提问&#xff0c;大模型 API 的 Token 到底是…

托管在亚马逊云科技的向量数据库MyScale如何借助AWS基础设施构建稳定高效的云数据库

MyScale是一款完全托管于亚马逊云科技&#xff0c;支持SQL的高效向量数据库。MyScale的优势在于&#xff0c;它在提供与专用向量数据库相匹敌甚至优于的性能的同时&#xff0c;还支持完整的SQL语法。以下内容&#xff0c;将阐述MyScale是如何借助亚马逊云科技的基础设施&#x…

手机/平板实现电脑第三屏-记录极简

软件&#xff1a; 手机 平板 : moonlight 电脑&#xff1a; 1 KtzeAbyss/Easy-Virtual-Display 2 Parsec Virtual Display Driver https://builds.parsec.app/vdd/parsec-vdd-0.38.0.0.exe 3 LizardByte/Sunshine: Self-hosted game stream host for Moonlight. (gith…

第十四章 Sentinel实现熔断与限流

Sentinel实现熔断与限流 gitee&#xff1a;springcloud_study: springcloud&#xff1a;服务集群、注册中心、配置中心&#xff08;热更新&#xff09;、服务网关&#xff08;校验、路由、负载均衡&#xff09;、分布式缓存、分布式搜索、消息队列&#xff08;异步通信&#x…

OpenCV-Python(21):轮廓特征及周长、面积凸包检测和形状近似

2. 轮廓特征 轮廓特征是指由轮廓形状和结构衍生出来的一些特征参数。这些特征参数可以用于图像识别、目标检测和形状分析等应用中。常见的轮廓特征包括&#xff1a; 面积&#xff1a;轮廓所包围的区域的面积。周长&#xff1a;轮廓的周长&#xff0c;即轮廓线的长度。弧长&…

Linux 线程概念

文章目录 前言线程的概念线程的操作操作的原理补充与说明 前言 ① 函数的具体说明被放在补充与说明部分 ② 只说些基础概念和函数使用 线程的概念 网络回答&#xff1a;Linux 线程是指在 Linux 操作系统中创建和管理的轻量级执行单元。线程是进程的一部分&#xff0c;与进程…

Web漏洞—安全评估基础知识

一个安全评估的过程&#xff0c;可以简单地分为4个阶段:资产等级划分、威胁分析、风险分析、确认解决方案。 一般来说&#xff0c;按照这个过程来实施安全评估&#xff0c;在结果上不会出现较大的问题。这个实施的过程是层层递进的,前后之间有因果关系。 资产等级划分 资产等级…

【CSS3】第4章 CSS3选择器

学习目标 熟悉属性选择器的用法&#xff0c;了解不同属性选择器的功能。 掌握关系选择器的用法&#xff0c;能够使用关系选择器选取父标签中嵌套的子标签。 掌握结构化伪类选择器的用法&#xff0c;能够使用不同功能的结构化伪类选择器精准控制标签样式。 掌握状态化伪类选择…