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

LED流水灯

这段代码是用于STM32F10x系列微控制器的程序,主要目的是初始化GPIOA并使其所有引脚按照特定的模式进行闪烁。下面是对这段代码的逐行解释:

  1. #include "stm32f10x.h":这一行包含了STM32F10x系列微控制器的设备头文件。这个头文件包含了该系列微控制器的一些寄存器和定义。
  2. #include "Delay.h":这一行包含了自定义的“Delay.h”头文件。这个头文件可能包含了用于产生延迟的函数或宏定义。
  3. int main(void):这是主函数的开始,它是程序的入口点。
  4. {:开始主函数的代码块。
  5. RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);:这行代码使能了GPIOA的时钟。在STM32中,为了使用某个外设(如GPIO),首先需要使能该外设的时钟。这里使用的是APB2总线上的GPIOA外设。
  6. GPIO_InitTypeDef GPIO_Initstructure;:定义了一个GPIO_InitTypeDef类型的变量GPIO_Initstructure。这个结构体通常用于初始化GPIO。
  7. GPIO_Initstructure.GPIO_Mode = GPIO_Mode_Out_PP;:设置GPIO的模式为推挽输出模式。
  8. GPIO_Initstructure.GPIO_Pin = GPIO_Pin_All;:设置要初始化的GPIO引脚为所有引脚。
  9. GPIO_Initstructure.GPIO_Speed = GPIO_Speed_50MHz;:设置GPIO的输出速度为50MHz。
  10. GPIO_Init(GPIOA, &GPIO_Initstructure);:使用上面定义的GPIO_Initstructure结构体的值来初始化GPIOA。
  11. }:结束初始化部分。
  12. while(1):这是一个无限循环,程序将一直运行这个循环中的代码。
  13. {:开始while循环的代码块。
  14. GPIO_Write(GPIOA,~0x0001);:将GPIOA的Pin 0和Pin 1设置为高电平,其他引脚设置为低电平。
  15. Delay_ms(10);:延迟10毫秒。
  16. GPIO_Write(GPIOA,~0x0002);:将GPIOA的Pin 2和Pin 3设置为高电平,其他引脚设置为低电平。
  17. Delay_ms(10);:延迟10毫秒。
  18. GPIO_Write(GPIOA,~0x0004);:将GPIOA的Pin 4和Pin 5设置为高电平,其他引脚设置为低电平。
  19. Delay_ms(10);:延迟10毫秒。
  20. GPIO_Write(GPIOA,~0x0008);:将GPIOA的Pin 6和Pin 7设置为高电平,其他引脚设置为低电平。
  21. Delay_ms(10);:延迟10毫秒。
  22. GPIO_Write(GPIOA,~0x0010);:将GPIOA的Pin 8和Pin 9设置为高电平,其他引脚设置为低电平。
  23. Delay_ms(10);:延迟10毫秒。
  24. GPIO_Write(GPIOA,~0x0020);:将GPIOA的Pin 10和Pin 11设置为高电平,其他引脚设置为低电平。
  25. Delay_ms(10);:延迟10毫秒。
  26. GPIO_Write(GPIOA,~0x0040);:将GPIOA的Pin 12和Pin 13设置为高电平,其他引脚设置为低电平。
  27. Delay_ms(10);:延迟10毫秒。
  28. GPIO_Write(GPIOA,~0x0080);:将GPIOA的Pin 14和Pin 15设置为高电平,其他引脚设置为低电平。
  29. Delay_ms(10);:延迟10毫秒。
  30. }:结束while循环的代码块。
  31. }:结束主函数的代码块

#include "stm32f10x.h"                  // Device header
#include "Delay.h"

int main(void)
{
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
    
    GPIO_InitTypeDef GPIO_Initstructure;
    GPIO_Initstructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_Initstructure.GPIO_Pin = GPIO_Pin_0;
    GPIO_Initstructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOA, &GPIO_Initstructure);
    
    
    while(1)
    {
        GPIO_ResetBits(GPIOA,GPIO_Pin_0);
        Delay_ms(500);
        GPIO_SetBits(GPIOA,GPIO_Pin_0);
        Delay_ms(500);
        GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_RESET);
        Delay_ms(100);
        GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_SET);
        Delay_ms(100);
        
        GPIO_WriteBit(GPIOA,GPIO_Pin_0,(BitAction)0);
        Delay_ms(100);
        GPIO_WriteBit(GPIOA,GPIO_Pin_0,(BitAction)1);
        Delay_ms(100);
    }
}

相关文章:

LED流水灯

这段代码是用于STM32F10x系列微控制器的程序,主要目的是初始化GPIOA并使其所有引脚按照特定的模式进行闪烁。下面是对这段代码的逐行解释: #include "stm32f10x.h":这一行包含了STM32F10x系列微控制器的设备头文件。这个头文件包含…...

MySQL-B-tree和B+tree区别

B-tree(平衡树)和Btree(平衡树的一种变种)是两种常见的树状数据结构,用于构建索引以提高数据库的查询性能。它们在一些方面有相似之处,但也有一些关键的区别。以下是B-tree和Btree的主要区别: …...

架构篇08:架构设计三原则

文章目录 合适原则简单原则演化原则小结 成为架构师是每个程序员的梦想,但并不意味着把编程做好就能够自然而然地成为一个架构师,优秀程序员和架构师之间还有一个明显的鸿沟需要跨越,这个鸿沟就是“不确定性”。 对于编程来说,本…...

基于SpringBoot Vue汽车租赁系统

大家好✌!我是Dwzun。很高兴你能来阅读我,我会陆续更新Java后端、前端、数据库、项目案例等相关知识点总结,还为大家分享优质的实战项目,本人在Java项目开发领域有多年的经验,陆续会更新更多优质的Java实战项目&#x…...

idea带的maven在SpringBoot下载jar包出错、下载jar包速度慢

找到idea安装目录 /IntelliJ IDEA/plugins/maven/lib/maven3/conf/settings.xml 搜索:mirrors 添加到mirrors标签里。&#xff08;默认下载包是从国外拉取&#xff0c;速度慢&#xff0c;现在替换成国内阿里的链接&#xff09; <mirror><id>central</id><…...

datasets的一些使用技巧

#加载某类文件作为数据集 dataset load_dataset("json", data_files"./train_pair_1w.json", split"train") #加载数据集中的子数据集 datasets load_dataset("clue",name"afqmc",#trust_remote_codeTrue) train_datas…...

react 实现页面状态缓存(keep-alive)

前言&#xff1a; 因为 react、vue都是单页面应用&#xff0c;路由跳转时&#xff0c;就会销毁上一个页面的组件。但是有些项目不想被销毁&#xff0c;想保存状态。 比如&#xff1a;h5项目跳转其他页面返回时&#xff0c;页面状态不丢失。设想一个 页面我滑倒了中间&#xf…...

spring和springboot、springMVC有什么区别?

前言 大家好&#xff0c;我是chowley&#xff0c;今天来聊一下&#xff0c;刚在面试中被问到的一个经典问题 spring和springboot、springMVC有什么区别&#xff1f; Spring、Spring Boot 和 Spring MVC 是 Spring Framework 生态中的不同组件&#xff0c;各自有不同的角色和…...

centos 启动nacos pg版本

背景&#xff1a;支持国产化需求&#xff0c;不再使用mysql 1.修改插件 git clone https://github.com/wuchubuzai2018/nacos-datasource-extend-plugins.git cd nacos-datasource-extend-plugins/nacos-postgresql-datasource-plugin-ext mvn package编译成功后&#xff0c;…...

实验:MySQL 客户端SocketTimeout 抓包分析

实验准备 服务端环境准备 服务器信息 阿里云 99 大洋白嫖机 $ cat /proc/version Linux version 5.15.0-83-generic (builddlcy02-amd64-027) (gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0, GNU ld (GNU Binutils for Ubuntu) 2.38) #92-Ubuntu SMP Mon Aug 14 09:30:42 UT…...

rocketmq双主双从部署+dashbord

1、主机规划 主机节点地址主机Anamesrv192.168.2.228:9876主机Abroker-a192.168.2.228:10911主机Abroker-b192.168.2.228:11911主机Bnamesrv192.168.2.229:9876主机Bbroker-c192.168.2.229:10911主机Bbroker-d192.168.2.229:11911 2、两台主机都需要执行&#xff0c;创建mq需…...

OpenHarmony当前进展和未来趋势

操作系统自20世纪50年代诞生&#xff0c;经历了从专用操作系统到通用操作系统的转变。整体可以将操作系统的发展历史分为3个阶段&#xff1a;PC时代、移动互联网时代、万物互联时代。 PC时代主要以计算机为主&#xff0c;用户规模从1970年的10亿增长到1990年的30亿。这一时代诞…...

php学习

php基础语法 一 php程序 1.php标记 开始标记<?php 和结束标记 ?>中间写 PHP 代码 当解析一个文件时&#xff0c;PHP 会寻找起始和结束标记&#xff0c;也就是告诉php 开始和停止解析二者之间的代码。此种解析方式使得PHP 可以被嵌入到各种不同的文档中去&#xff…...

ruoyi框架教程

心血来潮&#xff0c;写一篇关于ruoyi【若依】框架从0-1的教程。说一下使用感受吧&#xff0c;如果有一个架构师或者老手已经把架构改造完成也能指导你如何快速上手&#xff0c;那么你在后面的增删改查系列开发起来会如鱼得水。如果没有人改造&#xff0c;也没有人教你&#xf…...

通过浏览器URL地址,5分钟内渗透你的网站!很刑很可拷!

今天我来带大家简单渗透一个小破站&#xff0c;通过这个案例&#xff0c;让你深入了解为什么很多公司都需要紧急修复各个中间件的漏洞以及进行URL解析拦截等重要操作。这些措施的目的是为了保护网站和系统的安全性。如果不及时升级和修复漏洞&#xff0c;你就等着被黑客攻击吧&…...

dubbo:深入理解Apache Dubbo与实战

dubbo核心组件 层次名 作 用 Service 业务层。包括业务代码的接口与实现&#xff0c;即开发者实现的业务代码 config 配置层。主要围绕ServiceConfig &#xff08;暴露的服务配置&#xff09;和ReferenceConfig &#xff08;引用的服务配置&#xff09;两个实现类展开&#xf…...

写着玩的程序:pycharm实现无限弹窗程序(非病毒程序,仅整蛊使用)

运行环境 PyCharm 2023.2.1 python3.11 具体内容 源代码 import tkinter as tk from tkinter import messagebox import threadingclass PopupGenerator:def __init__(self):self.root tk.Tk()self.root.geometry("200x120")self.root.title("无限弹窗&qu…...

计算机网络——运输层(2)暨小程送书

计算机网络——运输层&#xff08;2&#xff09;暨小程送书 小程一言专栏链接: [link](http://t.csdnimg.cn/ZUTXU) 运输层&#xff08;2&#xff09;TCP/IP对比TCP&#xff08;传输控制协议&#xff09;&#xff1a;IP&#xff08;互联网协议&#xff09;&#xff1a;总结 拥塞…...

FPGA高端项目:Xilinx Zynq7020 系列FPGA纯verilog图像缩放工程解决方案 提供3套工程源码和技术支持

目录 1、前言版本更新说明给读者的一封信FPGA就业高端项目培训计划免责声明 2、相关方案推荐我这里已有的FPGA图像缩放方案本方案在Xilinx Kintex7 系列FPGA上的应用本方案在Xilinx Artix7 系列FPGA上的应用本方案在国产FPGA紫光同创系列上的应用本方案在国产FPGA高云系列上的应…...

【分布式技术专题】「分布式技术架构」 探索Tomcat集群架构原理和开发分析指南

探索Tomcat技术架构设计模式的奥秘 Tomcat集群原理Tomcat集群能带来什么Tomcat集群产生什么问题Tomcat 单服务体系架构Tomcat集群"简单版"首先要解决Session共享的问题典型负载均衡策略分析Session管理-Session Sticky粘滞会话&#xff1a;Session管理-Session 复制S…...

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)

概述 在 Swift 开发语言中&#xff0c;各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过&#xff0c;在涉及到多个子类派生于基类进行多态模拟的场景下&#xff0c;…...

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...

【决胜公务员考试】求职OMG——见面课测验1

2025最新版&#xff01;&#xff01;&#xff01;6.8截至答题&#xff0c;大家注意呀&#xff01; 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:&#xff08; B &#xff09; A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...

c#开发AI模型对话

AI模型 前面已经介绍了一般AI模型本地部署&#xff0c;直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型&#xff0c;但是目前国内可能使用不多&#xff0c;至少实践例子很少看见。开发训练模型就不介绍了&am…...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程

本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习视频及资料&#xff0c;尽在聚客AI学院。 本文全面剖析RNN核心原理&#xff0c;深入讲解梯度消失/爆炸问题&#xff0c;并通过LSTM/GRU结构实现解决方案&#xff0c;提供时间序列预测和文本生成…...

Fabric V2.5 通用溯源系统——增加图片上传与下载功能

fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...

MFE(微前端) Module Federation:Webpack.config.js文件中每个属性的含义解释

以Module Federation 插件详为例&#xff0c;Webpack.config.js它可能的配置和含义如下&#xff1a; 前言 Module Federation 的Webpack.config.js核心配置包括&#xff1a; name filename&#xff08;定义应用标识&#xff09; remotes&#xff08;引用远程模块&#xff0…...

Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析

Java求职者面试指南&#xff1a;Spring、Spring Boot、Spring MVC与MyBatis技术解析 一、第一轮基础概念问题 1. Spring框架的核心容器是什么&#xff1f;它的作用是什么&#xff1f; Spring框架的核心容器是IoC&#xff08;控制反转&#xff09;容器。它的主要作用是管理对…...

leetcode73-矩阵置零

leetcode 73 思路 记录 0 元素的位置&#xff1a;遍历整个矩阵&#xff0c;找出所有值为 0 的元素&#xff0c;并将它们的坐标记录在数组zeroPosition中置零操作&#xff1a;遍历记录的所有 0 元素位置&#xff0c;将每个位置对应的行和列的所有元素置为 0 具体步骤 初始化…...