当前位置: 首页 > news >正文

ARM单片机实现流水灯(GD32)

 根据上图可知使用的引脚分别是PA8,PE6,PF6流水灯功能的实现要分别初始化这几个引脚

流水灯实现

编写流水灯代码

LED.C

#include "gd32f30x.h"                   // Device header
#include "Delay.h"
// 初始化LED灯
void LED_Init(void){// 使能RCU时钟rcu_periph_clock_enable(RCU_GPIOA);// 配置引脚输出频率gpio_init( GPIOA, GPIO_MODE_OUT_PP, GPIO_OSPEED_2MHZ, GPIO_PIN_8);// 初始化GPIOE的引脚rcu_periph_clock_enable(RCU_GPIOE);// 配置引脚输出频率gpio_init( GPIOE, GPIO_MODE_OUT_PP, GPIO_OSPEED_2MHZ, GPIO_PIN_6);// 初始化GPIOE的引脚rcu_periph_clock_enable(RCU_GPIOF);// 配置引脚输出频率gpio_init( GPIOF, GPIO_MODE_OUT_PP, GPIO_OSPEED_2MHZ, GPIO_PIN_6);
}// 实现循环流水灯的功能
void LED_Cycle(void){DelayInit();while(1){gpio_bit_set(GPIOA, GPIO_PIN_8); DelayNms(1000);gpio_bit_reset(GPIOA, GPIO_PIN_8);DelayNms(1000);gpio_bit_set(GPIOE, GPIO_PIN_6); DelayNms(1000);gpio_bit_reset(GPIOE, GPIO_PIN_6);DelayNms(1000);gpio_bit_set(GPIOF, GPIO_PIN_6); DelayNms(1000);gpio_bit_reset(GPIOF, GPIO_PIN_6);DelayNms(1000);}}

LED.H

#ifndef _LED_H_
#define _LED_H_
// led灯初始化
void LED_Init(void);
// 实现循环流水灯的功能
void LED_Cycle(void);#endif

Delay.c

#include <stdint.h>
#include "gd32f30x.h"/**
***********************************************************
* @brief DWT初始化配置
* @param
* @return 
***********************************************************
*/
void DelayInit(void) 
{/* 关闭 TRC */CoreDebug->DEMCR &= ~CoreDebug_DEMCR_TRCENA_Msk;/* 打开 TRC */CoreDebug->DEMCR |= CoreDebug_DEMCR_TRCENA_Msk;/* 关闭计数功能 */DWT->CTRL &= ~DWT_CTRL_CYCCNTENA_Msk;/* 打开计数功能 */DWT->CTRL |= DWT_CTRL_CYCCNTENA_Msk;/* 计数清零 */DWT->CYCCNT = 0;
}/**
***********************************************************
* @brief 微秒级延时函数
* @param nUs,最大延时时间( 2^32 / 内核主频 ) * 10^6 us 
* @return 
***********************************************************
*/
void DelayNus(uint32_t nUs)
{uint32_t tickStart = DWT->CYCCNT;/* 转换为nUs对应的时钟跳动次数*/nUs *= (rcu_clock_freq_get(CK_AHB) / 1000000);/* 延时等待 */while ((DWT->CYCCNT - tickStart) < nUs);
}/**
***********************************************************
* @brief 毫秒级延时函数
* @param nMs,延时时间n毫秒
* @return 
***********************************************************
*/
void DelayNms(uint32_t nMs)
{for (uint32_t i = 0; i < nMs; i++){DelayNus(1000);}
}

Delay.h

#ifndef _DELAY_H_
#define _DELAY_H_
void DelayInit(void);
void DelayNus(uint32_t nUs);
void DelayNms(uint32_t nMs);
#endif

main.c

#include <stdint.h>
#include "gd32f30x.h"
#include "Delay.h"
#include "LED.h"int main(void)
{    DelayInit();LED_Init();LED_Cycle();while(1){} }

相关文章:

ARM单片机实现流水灯(GD32)

根据上图可知使用的引脚分别是PA8,PE6,PF6流水灯功能的实现要分别初始化这几个引脚 流水灯实现 编写流水灯代码 LED.C #include "gd32f30x.h" // Device header #include "Delay.h" // 初始化LED灯 void LED_Init(void){// 使能RCU时钟…...

操作系统基础之磁盘

概述 基本概念 磁盘有正反两个盘面&#xff0c;每个盘面有多个同心圆&#xff0c;每个同心圆是一个磁道&#xff0c;每个同心圆又被划分为多个扇区&#xff0c;数据就被存在扇区中。 磁头首先寻找到对应磁道&#xff0c;然后等到磁盘进行周期旋转到指定的扇区&#xff0c;才…...

【Unity Shader入门精要 第6章】基础光照(一)

1. 什么是光照模型 光照原理 在真实世界中&#xff0c;我们能够看到物体&#xff0c;是由于眼睛接收到了来自观察目标的光。这里面包括两种情况&#xff1a;一部分是观察目标本身发出的光&#xff08;自发光&#xff09;直接进入我们的眼睛&#xff0c;另一部分是其他物体&am…...

JavaEE概述 + Maven

文章目录 一、JavaEE 概述二、工具 --- Maven2.1 Maven功能 仓库 坐标2.2 Maven之项目构建2.3 Maven之依赖管理 三、插件 --- Maven Helper 一、JavaEE 概述 Java SE、JavaEE&#xff1a; Java SE&#xff1a;指Java标准版&#xff0c;适用于各行各业&#xff0c;主要是Java…...

python把png转成jpg

在Python中&#xff0c;你可以使用PIL&#xff08;Python Imaging Library&#xff0c;也称为Pillow&#xff09;库来读取PNG图片并将其转换为JPG格式。下面是一个简单的示例代码&#xff1a; from PIL import Image# 打开PNG图片 png_image Image.open(input.png)# 保存为JP…...

信息系统架构基本概念及发展_2.信息系统架构的定义

1.几种架构的定义 信息系统架构仍在不断发展中&#xff0c;还没有形成一个公认的定义&#xff0c;这里举出几个定义。 定义1&#xff1a;软件或计算机系统的信息系统架构是该系统的一个&#xff08;或多个&#xff09;结构&#xff0c;而结构由软件元素、元素的外部可见…...

ctfshow SSRF 351-358

做题前,需要先学习关于ssrf漏洞的相关知识 小注意: 当使用 file_get_contents() 函数访问远程 URL 时&#xff0c;它会尝试获取该 URL 指向的资源的内容&#xff0c;并将内容以字符串的形式返回。 如果 b.php 文件是一个 PHP 文件&#xff0c;它包含的内容取决于该 PHP 文件…...

优化学习方法,事半功倍

学习&#xff0c;是人一生中必不可少的过程。在学习的道路上&#xff0c;我们会遇到各种各样的挑战和困难&#xff0c;但只要我们能够发现并优化适合自己的学习方法&#xff0c;就能事半功倍&#xff0c;取得更好的成绩。 首先&#xff0c;要充分了解自己的学习方式和习惯。每个…...

Spring STOMP-开启STOMP

通过Spring框架的spring-messaging和spring-websocket模块&#xff0c;提供了对WebSocket上STOMP的支持。一但你添加了这些依赖项&#xff0c;你就可以像下面这个示例一样&#xff0c;通过WebSocket公开一个STOMP端点&#xff1a; import org.springframework.web.socket.conf…...

Python 开发 框架安全:Django SQL注入漏洞测试.(CVE-2021-35042)

什么是 Django 框架 Django 是一个用 Python 编写的 Web 应用程序框架。它提供了许多工具和库&#xff0c;使得开发 Web 应用程序变得更加容易和高效。Django 遵循了“MTV”&#xff08;模型-模板-视图&#xff09;的设计模式&#xff0c;将应用程序的不同组件分离开来&#x…...

《Python编程从入门到实践》day25

# 昨日知识点回顾 如何创建多行外星人 碰撞结束游戏 创建game_stats.py跟踪统计信息 # 今日知识点学习 第14章 记分 14.1 添加Play按钮 14.1.1 创建Button类 import pygame.font# button.py class Button:def __init__(self, ai_game, msg):"""初始化按钮…...

Unity 性能优化之光照优化(七)

提示&#xff1a;仅供参考&#xff0c;有误之处&#xff0c;麻烦大佬指出&#xff0c;不胜感激&#xff01; 文章目录 前言一、测试目的一、实时光源是什么&#xff1f;二、开始测试1.场景中只有一个光照的数值情况2.添加4个点光源后4.结果 总结 前言 实时光源数量越多&#x…...

C语言 | Leetcode C语言题解之第84题柱状图中最大的矩形

题目&#xff1a; 题解&#xff1a; int largestRectangleArea(int* heights, int heightsSize) {int st[heightsSize];int p[2];p[0]-1,p[1]heightsSize;int size0,result0;st[size]0;for(int i1;i<heightsSize;i){ while(size!0&&heights[i]<heights[st[size-1…...

AI办公自动化-用kimi批量重命名Word文档

文件夹里面有很多个word文档&#xff0c;标题里面都含有零代码编程&#xff0c;现在想将其替换为AI办公自动化。 在kimichat中输入提示词&#xff1a; 你是一个Python编程专家&#xff0c;要完成一个编写Python脚本的任务&#xff0c;具体步骤如下&#xff1a; 打开文件夹&am…...

Golang 并发 Mutex 互斥锁的使用

Golang 并发 Mutex 互斥锁的使用 1. 初始化 func TestMutex(t *testing.T) {mu01 : sync.Mutex{}var mu02 sync.Mutex }两种方式都ok 2. Mutex使用 计数器统计&#xff0c;多个协程同时对同一个变量进行 代码示例 var mu sync.Mutex var counter intfunc TestMutexAdd(t…...

20232906 2023-2024-2 《网络与系统攻防技术》第九次作业

20232906 2023-2024-2 《网络与系统攻防技术》第九次作业 1.实验内容 本次实践的对象是一个名为pwn1的linux可执行文件。 该程序正常执行流程是&#xff1a;main调用foo函数,foo函数会简单回显任何用户输入的字符串。 该程序同时包含另一个代码片段&#xff0c;getShell&am…...

常见的十二种软件架构

常用的软件架构有多种&#xff0c;以下是一些主要的软件架构风格&#xff1a; 单体架构&#xff08;Monolithic Architecture&#xff09;&#xff1a; 描述&#xff1a;所有功能都集中在一个应用或系统中&#xff0c;易于开发和部署&#xff0c;但随着系统增长&#xff0c;可能…...

数据库出现死锁的解决方法参考

死锁引起的原因一般是多个用户并发访问数据库导致的问题&#xff0c;或是因为某个进程挂死以后资源未释放导致的。通过onstat –p可查看deadlks项大于0即表示历史总计死锁次数。对于被锁的表进行操作的时候会出现-143 ISAM error: deadlock detected的错误。当其他会话访问此表…...

HCIP-Datacom-ARST自选题库_01_防火墙【6道题】

一、单选题 1.在防火墙域间安全策略中&#xff0c;请问以下哪一项的数据流不是Outbound方向的? 从Trust区域到DMZ区域的数据流 从Trust区域到Untrust区域的数据流 从Trust区域到Local区域的数据流 从DMZ区域到Untrust区域的数据流 2.如果防火墙域间没有配置安全策路&…...

力扣/leetcode383.比特位记数

题目描述 给你一个整数 n &#xff0c;对于 0 < i < n 中的每个 i &#xff0c;计算其二进制表示中 1 的个数 &#xff0c;返回一个长度为 n 1 的数组 ans 作为答案。 示例 代码思路 第一种方法 最简单的方法就是&#xff0c;遍历然后使用python自带的bin()方法直接…...

免费压缩包密码恢复工具:ArchivePasswordTestTool终极指南

免费压缩包密码恢复工具&#xff1a;ArchivePasswordTestTool终极指南 【免费下载链接】ArchivePasswordTestTool 利用7zip测试压缩包的功能 对加密压缩包进行自动化测试密码 项目地址: https://gitcode.com/gh_mirrors/ar/ArchivePasswordTestTool 你是否曾经因为忘记压…...

收藏必备!小白程序员快速入门RAG,解锁大模型知识检索与增强(干货满满)

本文详细介绍了RAG&#xff08;检索增强生成&#xff09;的概念、流程及优化策略。RAG通过从数据库检索上下文文档&#xff0c;有效提升LLM答案的准确性与时效性&#xff0c;解决纯生成模型的局限性。文章覆盖了文档加载、切分、向量化存储&#xff0c;以及检索与生成两个核心阶…...

DownKyi终极教程:3步掌握B站视频下载,免费打造个人媒体库

DownKyi终极教程&#xff1a;3步掌握B站视频下载&#xff0c;免费打造个人媒体库 【免费下载链接】downkyi 哔哩下载姬downkyi&#xff0c;哔哩哔哩网站视频下载工具&#xff0c;支持批量下载&#xff0c;支持8K、HDR、杜比视界&#xff0c;提供工具箱&#xff08;音视频提取、…...

Perplexity谚语查询功能实测报告:7类典型误用场景+5步精准调优法,错过即降效40%

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;Perplexity谚语查询功能的核心价值与适用边界 Perplexity 的谚语查询功能并非通用语言模型的简单问答接口&#xff0c;而是一个面向文化语义深度解析的专用能力模块。它依托高质量结构化谚语知识图谱与上下文感…...

Best Practice for AI Agents Project _ Chapter 1

很高兴he大家分享&#xff0c;《AI智能体项目最佳实践》内容&#xff0c;系统覆盖从单智能体工程基础&#xff0c;到私有知识注入、能力扩展、安全设计&#xff0c;再到多智能体协同的完整企业AI落地路径。本次分享第一章&#xff1a;从模型调用到可靠的单智能体&#xff08;Fr…...

深入浅出:拆解Xilinx ERNIC IP的硬件架构,看RoCE v2如何卸载CPU

深入浅出&#xff1a;拆解Xilinx ERNIC IP的硬件架构&#xff0c;看RoCE v2如何卸载CPU 在数据中心和高性能计算领域&#xff0c;RDMA&#xff08;远程直接内存访问&#xff09;技术正成为突破网络性能瓶颈的关键。Xilinx的ERNIC IP核作为RoCE v2协议的硬件实现&#xff0c;通过…...

超强干货整理!2026GEO排名查询监测系统排名,适配多场景企业需求

2026年&#xff0c;AI搜索主导信息分发逻辑&#xff0c;GEO&#xff08;生成式引擎优化&#xff09;成为企业品牌曝光、流量增长的核心抓手。对企业而言&#xff0c;GEO优化的关键不仅是“铺内容、做适配”&#xff0c;更在于“精准监测、科学优化”——唯有实时掌握AI搜索排名…...

Sora 2生成帧精度达99.7%的LUT匹配方案,DaVinci色彩科学全链路对齐指南

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;Sora 2与DaVinci整合的底层逻辑与技术共识 Sora 2 作为新一代视频生成基础模型&#xff0c;其核心能力建立在时空联合建模与长程依赖捕获之上&#xff1b;DaVinci 则是面向专业影视工作流的高性能非线性编辑与…...

安防摄像头ISP不够用?聊聊MIPI CSI离线模式(Offline Pipeline)与RAW数据缓存的那些事

安防摄像头ISP资源紧张&#xff1f;深度解析MIPI CSI离线模式与RAW数据缓存技术 在智能安防和车载视觉系统快速发展的今天&#xff0c;多摄像头协同工作已成为行业标配。无论是商场监控中的360度无死角覆盖&#xff0c;还是汽车环视系统中的多路影像同步处理&#xff0c;都对图…...

哨兵1号数据处理必备:如何搞定精密轨道文件和SRTM DEM数据(最新可用链接)

哨兵1号数据处理实战&#xff1a;精密轨道与SRTM DEM数据获取全指南 对于从事InSAR或时序分析的遥感研究者而言&#xff0c;数据预处理阶段的轨道校正和地形相位去除是决定成果精度的关键步骤。本文将聚焦哨兵1号SAR数据处理中最核心的两类辅助数据——精密轨道文件和SRTM DEM&…...