蓝桥杯国赛备赛(嵌入式组)

news2024/11/25 16:23:24

一、数码管(拓展板)(共阴接法)

引脚控制
PA3 :RCLK 串型存储时钟输入 (上升沿有效)
PA2 :SCK 串行移位时钟输入(上升沿有效)
PA1 :SER 串型数据输入

发送数据时先发高位:因为会通过移位寄存器将他移到最后一个位置。

1、程序设计
(1)拓展板跳线帽连接(如下图)
在这里插入图片描述
(2)配置PA1、PA2、PA3为推挽输出
(3)通过STC-ISP软件得到数码管显示“段选”
(4)根据595芯片工作原理,编写seg_display函数(先发送高位)

1.1、共阴数码管码表
在这里插入图片描述
1.2、程序

“seg.c”

#include "seg.h"

#define	SER_H	HAL_GPIO_WritePin(GPIOA,GPIO_PIN_1,GPIO_PIN_SET)
#define	SER_L	HAL_GPIO_WritePin(GPIOA,GPIO_PIN_1,GPIO_PIN_RESET)

#define	SCK_H	HAL_GPIO_WritePin(GPIOA,GPIO_PIN_3,GPIO_PIN_SET)
#define	SCK_L	HAL_GPIO_WritePin(GPIOA,GPIO_PIN_3,GPIO_PIN_RESET)

#define	RCK_H	HAL_GPIO_WritePin(GPIOA,GPIO_PIN_2,GPIO_PIN_SET)
#define	RCK_L	HAL_GPIO_WritePin(GPIOA,GPIO_PIN_2,GPIO_PIN_RESET)

u8 seg_buf[3];	// 数码管显示缓存数组
u8 seg_code[]={
//   0    1    2    3    4    5    6    7    8    9   
    0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};

void Seg_Display(void)
{
	u8 i;
	
	for(i=0;i<8;i++)
	{
		if(seg_buf[2] & 0x80)	SER_H;
		else SER_L;
		SCK_L;
		SCK_H;
		seg_buf[2] <<= 1;
	}
	
	for(i=0;i<8;i++)
	{
		if(seg_buf[1] & 0x80)	SER_H;
		else SER_L;
		SCK_L;
		SCK_H;
		seg_buf[1] <<= 1;
	}
	
	for(i=0;i<8;i++)
	{
		if(seg_buf[0] & 0x80)	SER_H;
		else SER_L;
		SCK_L;
		SCK_H;
		seg_buf[0] <<= 1;
	}
	RCK_L;
	RCK_H;
}

“seg.h”

#ifndef __SEG_H
#define __SEG_H

#include "main.h"

extern u8 seg_buf[3];
extern u8 seg_code[];
void Seg_Display(void);

#endif

main.c

void Seg_Process()
{
	HAL_Delay(100);
	
	seg_cnt++;	
	seg_buf[0] = seg_code[seg_cnt/100];
	seg_buf[1] = seg_code[seg_cnt/10%10];
	seg_buf[2] = seg_code[seg_cnt%10];
	Seg_Display();
}

现象:数码管从0开始加

二、双路ADC采集(扩展板)

引脚:
PA4:RP5滑动变阻器
PA5:RP6滑动变阻器

在这里插入图片描述
2.1、程序设计步骤
(1)按上图接好线
(2)配置PA4、PA5为ADC采集模式,并设为单端模式
(3)配置ADC2的转换通道数为2
(4)测试HAL_ADC_Start的ADC启动函数和HAL_ADC_GetValue的ADC读取函数
在这里插入图片描述
代码
main.c

void ADC_Process()
{
	//RANK1 - ADC2_IN17
	HAL_ADC_Start(&hadc2);//开启adc
	volt_rp5 = HAL_ADC_GetValue(&hadc2)/4095.0f*3.3f;	//读取通道1
	//RANK2 - ADC2_IN13
	HAL_ADC_Start(&hadc2);
	volt_rp6 = HAL_ADC_GetValue(&hadc2)/4095.0f*3.3f;//读取通道2
}

三、光敏电阻(扩展板)

1、接线
PA3:光敏电阻开关量信号
PA4:光敏电阻的分压模拟电压值
在这里插入图片描述
2、程序设计

(1)接线如上图
(2)配置PA4为ADC采集模式,并设置单端模式
(3)配置PA3为gpio输入模式
(4)测试ADC采集和GPIO读取功能

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

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

相关文章

【UnityShader入门精要】【总结记录】【第二章-1】

☀️博客主页&#xff1a;CSDN博客主页 &#x1f4a8;本文由 萌萌的小木屋 原创&#xff0c;首发于 CSDN&#x1f4a2; &#x1f525;学习专栏推荐&#xff1a;面试汇总 ❗️游戏框架专栏推荐&#xff1a;游戏实用框架专栏 ⛅️点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd;&a…

使用 Access SQL 插入、更新和删除表格记录

参考链接 使用 Access SQL 插入、更新和删除表格记录 | Microsoft Learnhttps://learn.microsoft.com/zh-cn/office/vba/access/concepts/structured-query-language/insert-update-and-delete-records-from-a-table-using-access-sql 将记录插入表格 基本上有两种方法可以向…

client-go架构与原理介绍

个人博客 一、架构展示 client-go 库中的各种组件架构如下图所示&#xff1a; 二、目录结构 client-go 是用 Golang 语言编写的官方编程式交互客户端库&#xff0c;提供对 Kubernetes API server 服务的交互访问。 其源码目录结构如下&#xff1a; . ├── discovery …

再识openmmlab,用mmDeploy实现部署的前期需要了解一些内容

OpenMMLab 是一个用于学术研究和工业应用的开源算法体系&#xff0c;于2018年年中开始&#xff0c;由 MMLab&#xff08;香港中文大学多媒体实验室&#xff09;和商汤科技联合启动。 如果第一接触的话&#xff0c;还是建议参考官方环境配置教程&#xff1a;Windows 环境配置 -…

Midjourney万能高清咒语,真正的近看也美

明明我都拿人家的图垫图了&#xff0c;为什么质量还是很差&#xff1f; 明明别人都把咒语分享出来了&#xff0c;为什么质量还是很差&#xff1f; 今天我们就来解决这两个问题&#xff0c;看到就是缘分&#xff0c;点点手指来个小心心不过分吧&#xff0c;哈哈 什么你在怀疑我的…

Spring Boot + ElasticSearch实战之CRUD及多数据源配置

概述 本文记录工作中使用Spring Boot ElasticSearch的实战&#xff0c;Spring Boot版本&#xff1a;2.1.6.RELEASE。 基础 Spring Boot已是Java开发标配&#xff0c;使用SB提供的starter&#xff0c;简单高效。 配置 引入依赖&#xff1a; <dependency><groupI…

Rocketmq如何保证消息不丢失

如果想要保证消息不丢失就要知道&#xff0c;消息可能出现丢失得地方。 1.producer发送消息 2.Broker存储消息 3.Consumer消费消息 4.Broker主从切换 下面一共有9个维度可以保证消息不丢失。 目录 维度一&#xff1a;同步发送 维度二.异步发送 维度三.刷盘策略 维度四…

数据库期末复习(2)

关系数据库 图1 上图为思考题1的答案 \d student #查看完整性约束 模式和实例 关系的模式:关系有哪些、关系又什么类型、关系的约束时什么&#xff0c;一般来说关系的模式一般比较稳定&#xff0c;不会随着动态的变化而变化。 关系的实例:关系的实例一般随着变化的次数比较…

体验 InsCode AI,原来 AI 也扛不住互联网黑话

CSDN AI写作助手上线了&#xff01;InsCode AI 创作助手不仅能够帮助用户高效创作文章&#xff0c;而且能够作为对话式AI回答你想知道的问题。成倍提高生产力&#xff01;以下是我的体验分享 一、你平时会使用这类AI工具吗&#xff1f;你对这类型的工具有什么看法&#xff1f;…

RPC(2):RPC简介

1 RFC RFC(Request For Comments) 是由互联网工程任务组(IETF)发布的文件集。文件集中每个文件都有自己唯一编号&#xff0c;例如&#xff1a;rfc1831。目前RFC文件由互联网协会(Internet Society&#xff0c;ISOC)赞助发行。 RPC就收集到了rfc 1831中。可以通过下面网址查看…

微信小程序websocket使用protobuf,发送arraybuffer

❤️砥砺前行&#xff0c;不负余光&#xff0c;永远在路上❤️ 目录 前言一、如何在小程序websocket中使用 Protobuf 发送buffer二、使用过程遇到的坑&#xff08;版本问题&#xff09;1、需要注意下Protobuf版本 使用 protobufjs6.8.6最好&#xff0c;我在使用的时候安装7.多 …

1_7后端优化

后端优化是指将一段时间内相机所有关键帧的位姿、内参、每个点3维坐标作为参数进行优化&#xff0c;得到最优的内、外参&#xff1b;利用的方法主要是Bundle Adjustment。 所谓Bundle Adjustment可以理解为从任意特征点发射出来的几束光线&#xff0c;它们会在几个相机的成像平…

寄存器-汇编复习(2)

通过阅读本文小节内容&#xff0c;可以清楚的明白汇编承接的能力和机器语言&#xff0c;高级语言之间的表达关系。文中虽然讨论16位cpu&#xff0c;最新的64或以后的128理论都一样的&#xff0c;类推就好了。 继续将 通用寄存器-汇编复习(1)_luozhonghua2000的博客-CSDN博客 …

很多人打商标的主意,悄悄埋伏

很多人在打商标的主意&#xff0c;等着抢劫呢 等你的品牌结了果实&#xff0c;然后出手勒索 趣讲大白话&#xff1a;鬼子进村&#xff0c;打枪的不要 【趣讲信息科技183期】 **************************** 有些公司申请几千件商标 有公司一个月申请100件 春江水暖贼先知 有一条…

WSL2网络配置

WSL2越来越好用了&#xff0c;但是在windows下使用clash时&#xff0c;配置WSL2的网络很麻烦&#xff0c;通常使用设置环境变量export ALL_PROXY"http://127.0.0.1:8000"的方式有很大的弊端&#xff0c;例如pip和conda就不会走代理。 经过我亲身体验&#xff0c;最好…

基于小脑模型神经网络的轨迹跟踪研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

模拟退火算法(附简单案例及详细matlab源码)

作者&#xff1a;非妃是公主 专栏&#xff1a;《智能优化算法》 博客地址&#xff1a;https://blog.csdn.net/myf_666 个性签&#xff1a;顺境不惰&#xff0c;逆境不馁&#xff0c;以心制境&#xff0c;万事可成。——曾国藩 文章目录 专栏推荐序一、概论二、物理退火1. 加温…

MyBatis - CRUD 操作

文章目录 1.环境配置1.1 导入相关依赖1.2 基本配置1.3 数据模型 2.基于 XML 开发2.1 创建 Mapper 接口2.2 创建 XML 映射文件2.3 insert2.4 select2.5 delete2.6 update2.7 编写单元测试 3.基于注解开发3.1 常用注解3.2 创建 Mapper 接口 MyBatis 支持通过 XML 和注解两种方式来…

chatgpt赋能python:Python运行程序没反应怎么办?

Python运行程序没反应怎么办&#xff1f; Python作为一种高级编程语言&#xff0c;已经成为了很多开发者的首选语言。然而&#xff0c;在使用Python编写程序时&#xff0c;有时候会出现运行程序却没有任何反应的情况。这是什么原因导致的呢&#xff1f;本文将为大家介绍Python…

单例模式的饿/懒汉模式

目录 1. 什么是单例模式2. 饿汉模式2.1 饿汉模式概念2.2 饿汉模式代码 3. 懒汉模式3.1 懒汉模式概念3.2 单线程情况下的懒汉模式3.3 单例模式的写法(保证线程安全) 4. wait 和 sleep 的区别 1. 什么是单例模式 保证某个类在程序中只存在一份实例&#xff0c;而不会创建多个实例…