【STM32嵌入式系统设计与开发】——18StaticNixite(静态数码管应用)

这里写目录标题

    • STM32资料包: 百度网盘下载链接:链接:https://pan.baidu.com/s/1mWx9Asaipk-2z9HY17wYXQ?pwd=8888 提取码:8888
    • 1、函数编辑
      • (1)主函数编辑
      • (2)主函数头文件函数(bord.h)
      • (3)静态数码管源文件(nixite.c)
      • (4)静态数码管源文件(nixite.h)
    • 2、知识链接
      • (1)数码管共阴共阳的区别
      • (2)数码管原理
    • 3、工程测试


STM32资料包:
百度网盘下载链接:链接:https://pan.baidu.com/s/1mWx9Asaipk-2z9HY17wYXQ?pwd=8888
提取码:8888

1、函数编辑

(1)主函数编辑

基于STM32的检测定时器超时状态并翻转LED的状态,同时检测AD按键状态并输出按下的按键编号到串口。
在这里插入图片描述

步骤2:主函数main.c循环函数编写

#include "bord.h"

//数码管显示断码 0~9 .
uint8_t NixiteShow[12]= {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x80,0x00}; //共阴

/*********************************************************************
 @Function  : 程序入口
 @Parameter : N/A
 @Return    : N/A
**********************************************************************/
int main(void)
{ 	
	uint8_t i;
	delay_init(); //启动滴答定时器
    usart1_init(9600); //USART1初始化
	LED_Init(); //板载LED初始化
	SystemTinerInit(1000-1,7200-1); //系统时间初始化 定时100ms
    StaticNixiteInit(); 
	
	printf("初始化成功!\r\n");
	
	while(1)
	{	
			if(WaitTimerOut(5))		
			{
					SetStaticNixite(NixiteShow[i]);  // 如果等待定时器 5 到达超时时间,设置数码管显示为数组 NixiteShow 中第 i 个元素的值
					i += 1;                          // 将 i 自增,准备显示下一个元素
					if(i == 13) i = 0;               // 如果 i 达到数组的最大索引(13),将 i 重置为 0,实现循环显示
			}
	}	
}	

在这里插入图片描述

(2)主函数头文件函数(bord.h)

#ifndef __BORD_H_
#define __BORD_H_
#include "system_config.h"

//头文件包含
/*************SYSTEM*****************/
/*#include ".\sys\sys.h"*/
#include ".\delay\delay.h"
#include ".\usart\usart.h"
#include ".\timer\timer.h"

/***********Hardweare***************/
#include ".\led\led.h"
#include ".\nixite\nixite.h"

/***********Funlibrary***************/





#endif

在这里插入图片描述

(3)静态数码管源文件(nixite.c)

#include "stm32f10x_gpio.h"
#include "stm32f10x_rcc.h"
#include ".\nixite\nixite.h"
#include ".\sys\sys.h"


/*********************************************************************
 @Function  : 开发板静态数码管 IO初始化
 @Parameter : N/A 
 @Return    : N/A
**********************************************************************/
void StaticNixiteInit(void)
{
	GPIO_InitTypeDef GPIO_InitStructure;  // 定义 GPIO 初始化结构体变量

	// 使能 GPIOA 的时钟
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);

	// 配置 GPIO 引脚
	GPIO_InitStructure.GPIO_Pin = GPIO_ALL_PINS;       // 设置要配置的 GPIO 引脚,此处为 GPIOA 的所有引脚
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;   // 设置引脚为推挽输出模式
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  // 设置引脚输出速度为 50MHz

	// 初始化 GPIOA 的引脚配置
	GPIO_Init(GPIOA, &GPIO_InitStructure);

	// 将 GPIOA 的所有引脚置低,关闭数码管的显示
	GPIO_ResetBits(GPIOA, GPIO_ALL_PINS);
}

/*********************************************************************
 @Function  : 开发板静态数码管显示
 @Parameter : show :显示的段码 
 @Return    : N/A
**********************************************************************/
void SetStaticNixite(uint8_t show)
{	
    uint8_t i, temp;
    temp = show;  // 将传入的显示值存储在临时变量 temp 中

    // 循环处理每一位数字
    for(i = 0; i < 8; i++)
    {
        if(temp & 0x01)
            PAout(i) = 1;  // 如果 temp 的最低位为 1,则将对应的 PAout(i) 设置为高电平(1)
        else		
            PAout(i) = 0;  // 如果 temp 的最低位为 0,则将对应的 PAout(i) 设置为低电平(0)

        temp >>= 1;        // 将 temp 右移一位,准备处理下一位数字
    }
}

在这里插入图片描述

(4)静态数码管源文件(nixite.h)

#ifndef __NIXITE_H_
#define __NIXITE_H_
#include <stdint.h> 

/* 宏定义 */
#define GPIO_ALL_PINS (GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | \
                       GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7)
/* 函数声明 */
void StaticNixiteInit(void);
void SetStaticNixite(uint8_t show);

#endif

在这里插入图片描述

2、知识链接

(1)数码管共阴共阳的区别

共阴极和共阳极数码管的区别在于电极连接方式。
共阴极数码管的阴极(即数码管的段)连接到地(GND),控制共阴极数码管时,需要将对应的位引脚设置为高电平以点亮数字;
阳极(即数码管的位)需要通过给定的电压(通常是正电源)来点亮对应的数码管,在共阳极数码管中,阳极连接到正电源,而阴极需要连接到地才能点亮数码管。因此,而控制共阳极数码管时,需要将对应的阴极引脚设置为低电平以点亮数字;
在这里插入图片描述

(2)数码管原理

数码管由七个独立控制的LED段组成,分别标记为 a, b, c, d, e, f, g。通过控制这些段的点亮或熄灭状态,可以显示数字 0-9、部分字母和特殊符号。共阴极数码管中,将阴极连接到地(GND),给对应的阳极施加正电压可点亮相应段;共阳极数码管中,阳极连接到正电源,将阴极接地可点亮相应段
在这里插入图片描述

3、工程测试

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LangChain-RAG学习之 文档加载器

目录 一、实现原理 二、文档加载器的选择 (一).PDF 加载本地文件 可能需要的环境配置 (二).CSV 1、使用每个文档一行的 CSV 数据加载 CSVLoader 2、自定义 csv 解析和加载 &#xff08;csv_args 3、指定用于 标识文档来源的 列&#xff08;source_column (三)、文件目…

某了么数据获取脚本

某了么数据获取脚本 这段代码定义了一个名为 ElemeH5 的类&#xff0c;继承自 Base 类&#xff0c;用于处理与饿了么平台的API交互。该类包括了多种方法来进行网络请求、数据处理和API接口的动态生成。以下是对主要组成部分的详细解析&#xff1a; 类属性定义&#xff1a; fun…

2023陇剑杯-流量分析篇-wp

1.ez_web Q1:服务器自带的后门文件是什么&#xff1f; 常用http过滤命令&#xff1a;http.request.full_urihttp.request.methodPOST 查看第一个POST请求&#xff0c;发现关键点file_put_contents&#xff08;备注&#xff1a;file_put_contents内置函数&#xff0c;用于将字…

2×24.5W、内置 DSP、低失真、高信噪比、I2S 输入 D 类音频功率放大器,完美替换TPA5805,晶豪,致盛,

ANT3825 是一款高集成度、高效率的双通道数字 输入功放。供电电压范围在 5V&#xff5e;18V&#xff0c;数字接口 电源支持 3.3V 或 1.8V。双通道 BTL 模式下输出 功率可以到 224.5W(4Ω&#xff0c;16V&#xff0c;THDN1%)&#xff0c; 单通道 PBTL 模式下可以输出 37W&#x…

Rust里的Fn/FnMut/FnOnce和闭包匿名函数关系

闭包&#xff08;英语&#xff1a;Closure&#xff09;&#xff0c;又称词法闭包&#xff08;Lexical Closure&#xff09;或函数闭包&#xff08;function closures&#xff09;&#xff0c;是引用了自由变量的函数。这个被引用的自由变量将和这个函数一同存在&#xff0c;即使…

武汉星起航:策略升级,亚马逊平台销售额持续增长显实力

武汉星起航电子商务有限公司&#xff0c;一家致力于跨境电商领域的企业&#xff0c;于2023年10月30日在上海股权托管交易中心成功挂牌展示&#xff0c;这一里程碑事件标志着公司正式踏入资本市场&#xff0c;开启了新的发展篇章。公司董事长张振邦在接受【第一财经】采访时表示…

Java_从入门到JavaEE_09

一、构造方法/构造器 含义&#xff1a;和new一起是创建对象的功能 特点&#xff1a; 与类名相同的方法没有返回项 注意&#xff1a; 当类中没有写构造方法时&#xff0c;系统会默认添加无参构造&#xff08;无参数的构造方法&#xff09;构造方法可以重载的 有参构造好处&…

开源15T tokens!HuggingFace放出规模最大、质量最高预训练数据集 | 最新快讯

新智元报道 编辑&#xff1a;LRS FineWeb 是一个高质量的预训练数据集&#xff0c;包含 15T 个 tokens&#xff0c;主要包含英语文本&#xff1b;消融实验证明了 FineWeb 数据集的质量要高于其他开源数据集&#xff1b;数据清洗脚本也已开源。 Meta 最近开源的 Llama 3 模型再次…

vulnhub靶场之FunBox-2

一.环境搭建 1.靶场描述 Boot2Root ! This can be a real life scenario if rockies becomes admins. Easy going in round about 15 mins. Bit more, if you are find and stuck in the rabbit-hole first. This VM is created/tested with Virtualbox. Maybe it works with…

C#编程模式之外观模式

创作背景&#xff1a;给位伙伴&#xff0c;五一小长假结束&#xff0c;我们继续对C#编程之路进行探索。本文将继续编程模式的研究&#xff0c;主要介绍外观模式。外观模式也称为门面模式&#xff0c;是一种结构型设计模式&#xff0c;它的目的是为子系统中的一组接口提供一个统…

【隧道篇 / WAN优化】(7.4) ❀ 01. 启动WAN优化 ❀ FortiGate 防火墙

【简介】几乎所有的人都知道&#xff0c;防火墙自带的硬盘是用来保存日志&#xff0c;以方便在出现问题时能找到原因。但是很少的人知道&#xff0c;防火墙自带的硬盘其实还有另一个功能&#xff0c;那就是用于WAN优化。 防火墙自带的硬盘 在FortiGate防火墙A、B、C、D系列&…

oracle 8i系统检查

oracle 8i系统检查 set echo on spool d:\bk\1.txt select sysdate from dual; --版本信息 select * from v$version; --安装的产品 col PARAMETER for a50; col value for a10; select * from v$option order by 2; --用户信息 set linesize 100 set pagesize 100 COL USE…

景源畅信:抖音运营做什么工作内容?

在如今这个信息爆炸的时代&#xff0c;抖音已经成为了人们生活中不可或缺的一部分。无论是消磨时间、获取信息还是展示自我&#xff0c;抖音都扮演着重要的角色。那么&#xff0c;作为抖音运营&#xff0c;他们需要做些什么呢? 一、内容策划与制作 抖音运营的首要任务就是内容…

爬虫Python库Requests

一、介绍 Requests 是一个强大的 Python 库&#xff0c;用于发送 HTTP 请求。它使得与 RESTful API 进行交互变得非常简单。Requests 可以通过 GET、POST、PUT、DELETE 等方法发送各种类型的请求&#xff0c;并且支持自定义 HTTP 头、请求参数、数据、cookies 等。 使用 Requ…

MCM箱模型实践技术应用与O3形成途径、生成潜势、敏感性分析

目前&#xff0c;大气臭氧污染成为我国“十四五”期间亟待解决的环境问题。臭氧污染不仅对气候有重要影响&#xff0c;而且对人体健康、植物生长均有严重损害。为了高效、精准地治理区域大气臭氧污染&#xff0c;需要了解臭氧生成的主要途径及其前体物。OBM箱模型可用于模拟光化…

武汉星起航:跨境电商领域国际竞争力卓越,引领行业再上新台阶

在全球化浪潮的推动下&#xff0c;跨境电商行业日益成为各国经济交流与合作的重要桥梁。武汉星起航电子商务有限公司&#xff0c;作为跨境电商领域的佼佼者&#xff0c;凭借其深厚的行业经验和前瞻性的战略视野&#xff0c;在国际市场上展现出强大的竞争力&#xff0c;为行业的…

优化理论复习——(二)

本篇主要介绍一下LP问题及其相关的解法和示例&#xff0c;主要是记住相关的方法和结论即可&#xff0c;不要求证明。 方法主要是单纯形法&#xff0c;同时对于初始基可行解确定方面使用了大M法和二阶段法。主体都是关于单纯形法的。 首先认识一下线性规划的一般问题形式&#x…

报错,java: 程序包sun.misc不存在

错误描述 down下来一个项目&#xff0c;编译的时候报错&#xff0c;提示sun.misc包不存在&#xff0c;通过百度得知&#xff0c;原来这是jdk8中的jar包&#xff0c;在后来的版本中被移除了&#xff08;我用的jdk11&#xff0c;没有这个包&#xff09; 结局方法 1.更换jdk版本&…

知识库工具:付费的HelpLook AI知识库比免费的牵牛易帮好在哪里

在知识管理的领域中&#xff0c;选择合适的知识库工具对于企业来说很重要。市面上有很多知识库产品&#xff0c;有付费的和免费的&#xff0c;但是还是有很多企业会选择使用付费的&#xff0c;而不是免费的。这是为什么呢&#xff1f;这就是今天要探讨的问题&#xff0c;下面就…

vs配置cplex12.10

1.创建c空项目 2.修改运行环境 为release以及x64 3.创建cpp文件 4.鼠标右键点击项目中的属性 5.点击c/c&#xff0c;点击第一项常规&#xff0c;配置附加库目录 5.添加文件索引&#xff0c;主要用于把路径导进来 6.这一步要添加的目录与你安装的cplex的目录有关系 F:\program…