STM32F103寄存器方式点亮LED流水灯

2023-05-16

一、点灯

点亮LED灯,需要用到GPIO端口。

为了点亮LED灯,需要三个步骤:

打开GPIO口的时钟
初始化GPIO口(选择推挽输出)
设置低电平
1.打开时钟
gpio地址
在这里插入图片描述
2.时钟地址
在这里插入图片描述
在这里插入图片描述

二、创建项目

按照以下顺序新建一个项目
在这里插入图片描述

在这里插入图片描述
项目创建完后新建一个文件
在这里插入图片描述
在这里插入图片描述
将所需要的启动文件复制到项目目录下(f103c8t6启动文件为startup_stm32f10x_md.s然后将其添加到项目
在这里插入图片描述

创建完后点击魔法棒output–在create hex file选项打勾
然后main.c里写上代码


#define GPIOB_BASE 0x40010C00
#define GPIOC_BASE 0x40011000
#define GPIOA_BASE 0x40010800

#define RCC_APB2ENR (*(unsigned int *)0x40021018)

#define GPIOB_CRL (*(unsigned int *)0x40010C00)
#define GPIOC_CRH (*(unsigned int *)0x40011004)
#define GPIOA_CRL (*(unsigned int *)0x40010800)

#define GPIOB_ODR (*(unsigned int *)0x40010C0C)
#define GPIOC_ODR (*(unsigned int *)0x4001100C)
#define GPIOA_ODR (*(unsigned int *)0x4001080C)
	


void SystemInit(void);
void Delay_ms(volatile  unsigned  int);

void Delay_ms( volatile  unsigned  int  t)
{
     unsigned  int  i;
     while(t--)
         for (i=0;i<800;i++);
}


int main(){
	// 开启时钟
	RCC_APB2ENR |= (1<<3); // 开启 GPIOB 时钟
	RCC_APB2ENR |= (1<<4); // 开启 GPIOC 时钟
	RCC_APB2ENR |= (1<<2); // 开启 GPIOA 时钟
	
	
	// 设置 GPIO 为推挽输出
	// 设置 GPIOB 最后四位为 0001 (B0)
	GPIOB_CRL |= (1<<0);  // 最后一位设置为1
	GPIOB_CRL &= ~(0xE);  // 倒数二、三、四位设置为0
	// 设置 GPIOC 前四位为 0001  (C15)
	GPIOC_CRH |= (1<<28); // 第四位设置为1
	GPIOC_CRH &= ~(0xE0000000);  // 前三位设置为0
	// 设置 GPIOA 最后四位为 0001 (A0)
	GPIOA_CRL |= (1<<0);  // 最后一位设置为1
	GPIOA_CRL &= ~(0xE);  // 倒数二、三、四位设置为0

	
	// 3个LED初始化为不亮(即高点位)
	GPIOB_ODR |= (1<<0);  // 最后一位设置为1
	GPIOC_ODR |= (1<<15); // 倒数第15位设置为1
	GPIOA_ODR |= (1<<0);  // 最后一位设置为1
	
	
	while(1){
		GPIOB_ODR &= ~(1<<0); // 点灯1
		Delay_ms(1000000);
		GPIOB_ODR |= (1<<0);  // 灭灯1
		Delay_ms(1000000);
		
		GPIOC_ODR &= ~(1<<15); // 点灯2
		Delay_ms(1000000);
		GPIOC_ODR |= (1<<15);  // 灭灯2
		Delay_ms(1000000);
		
		GPIOA_ODR &= ~(1<<0); // 点灯3
		Delay_ms(1000000);
		GPIOA_ODR |= (1<<0);  // 灭灯3
		Delay_ms(1000000);
		
	}
	
}


void SystemInit(){
	
}



连接电路
在这里插入图片描述
编译
在这里插入图片描述
在mcuicp里面将hex文件添加到联机下载的文件,然后开始编程
效果如下。
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

STM32F103寄存器方式点亮LED流水灯 的相关文章

  • uboot1.1.6/lowlevel.S详解

    TEXT BASE word TEXT BASE 这个TEXT BASE是在uboot1 1 6 board smdk2410 config mk内定义的 xff0c TEXT BASE 61 0x33F80000 config mk内有注
  • 杨辉三角(Pascal‘s Triangle)

    6 杨辉三角 xff08 Pascal 39 s Triangle xff09 1 每个数等于它上方两数之和 直角模式等于上方和左上方元素之和 2 每行数字左右对称 xff0c 由1开始逐渐变大 3 第一行有1个元素 xff0c 第n行有n
  • A*算法在matlab上的实现

    先看看算法的效果 图中蓝绿色大圆为障碍物 xff0c 蓝色小圆为路径节点 xff0c 红色号为目的地 xff0c 蓝色为起点 算法下载位置 xff1a https gitee com bingobinlw volans tree maste
  • 数学知识---数论(质数和约数)

    文章目录 1 质数1 1质数的判定 试除法1 2分解质因数 试除法 1 3筛质数2 约数2 1试除法求约数2 2约数个数2 3约数之和2 4最大公约数 欧几里得算法 xff08 辗转相除法 xff09 1 质数 质数是针对所有大于1的自然数
  • ccie入门学习day1

    写信的例子 Source Name Source address Destination Name Destination address 数据从源端A送达目的端B xff1a 网络地址 xff1a IP地址 网络当中的任何网络设备的标识符
  • OSI七层模型 端到端通信

    免费DNS 电信 xff1a 114 114 114 114 google xff1a 8 8 8 8 xff0c 4 4 2 2 阿里 百度 腾讯 数据的端到端通信 xff1a 1 封装 xff1a encapsulation 2 解封装
  • 常见安全事件

    一 钓鱼 xff1b 1 诱惑性标题 xff1b 2 仿冒真实网站 xff1b 3 骗取用户账号 xff1b 4 骗取用户资料 xff1b 篡改 网页 Tampering 关键字 xff1a Hacked by 搜索引擎语法 xff1a I
  • 局域网技术,涉及到VLAN,TRUNK,链路聚合,VLAN间路由,单臂路由,

    Ethernet xff1a 以太网 构建一个网络 xff08 迷你型 小型 中型 大型 巨型 xff09 集线器 xff08 hub xff09 xff1a 物理层的设备 xff0c 半双工通信 xff0c 泛洪 xff08 floodi
  • ACL 网安基础

    ACL xff1a access control list 访问控制列表 网络当中哪些流量可以通过 xff0c 哪些流量不能通过 xff0c 哪些用户可以登录 xff0c 哪些用户拒绝登录 permit 允许 deny 拒绝 flow co
  • SONiC-P4实验搭建及研究SONiC管理的交换机

    首先需建立在虚拟机上部署SONiC P4仿真环境 xff0c 关于部署SONiC P4 xff0c 详情可以参考https github com sonic net SONiC wiki SONiC P4 Software Switch x
  • Linux操作系统指令

    Linux简介 Linux xff0c 全称GNU Linux xff0c 是一种免费使用和自由传播的类UNIX操作系统 xff0c 其内核由林纳斯 本纳第克特 托瓦兹于1991年10月5日首次发布 xff0c 它主要受到Minix和Uni
  • ubuntu 10.04下的配置tftp服务器

    转载自 http www cnblogs com geneil archive 2011 11 24 2261653 html 第1步 xff1a 安装tftp所需的软件 首先需要安装tftp hpa xff0c tftpd hpa xff
  • 【每天学习一点新知识】如何绕过CDN查真实ip

    1 什么是CDN 为了防止流量过大网络堵塞 xff0c 我们就在靠近用户的地方 xff0c 建一个缓存服务器 xff0c 把远端的内容复制一份 xff0c 放在这里 xff0c 简单来说就是将内容缓存在终端用户附近 2 怎么绕过cdn找到远
  • hadoop集群启动后datanode没有启动

    今天启动hadoop集群后 xff0c 查看进程发现名称节点的NameNode进程启动了 xff0c 但是数据节点的DataNode进程没有启动 xff0c 如下 xff1a 这个问题是个常见问题 xff0c 对于自学的初学者来说 xff0
  • 局域网组网 实验7 MPLS VNP

    配置 xff1a AR1 xff1a interface GigabitEthernet0 0 0 ip address 10 1 2 1 255 255 255 0 interface GigabitEthernet0 0 1 inter
  • 数字逻辑电路(四)

    数字逻辑电路 xff08 四 xff09 目录 组合逻辑电路 1 组合逻辑电路的分析 设计 2 数值计算电路 3 编码器 4 译码器 编码的逆过程 5 数值比较器 6 数据选择器 7 组合逻辑电路分析 组合逻辑电路 1 组合逻辑电路的分析
  • 2020-10-27

    云计算是什么 1 水龙头观点论 xff1a 当需要的时候 xff0c 你别管水是怎么来的 xff0c 电是怎么发的 xff0c 扭开水龙头用水 xff0c 插上插头用电 xff0c 只需要操心交水电费就是了 xff01 当你需要用一个软件时
  • 2020-11-03

    云计算的服务类型 当今IT信息时代 xff0c 云计算激流勇进 xff0c 稳步发展都离不开云计算服务 云计算的服务类型有 1 SaaS 软件即服务 SaaS 软件即服务 xff0c 是指用户获取软件服务的一种新形式 它不需要用户将软件产品
  • 2020-11-03

    云计算五大特点 云计算 xff0c 是一种基于互联网的计算方式 xff0c 通过这种方式 xff0c 共享的软硬件资源和信息可以按需提供给计算机和其他设备 典型的云计算提供商往往提供通用的网络业务应用 xff0c 可以通过浏览器等软件或者其
  • 2020-11-17

    大数据的就业前景还是很不错的 大数据的价值体现在以下几个方面 xff1a xff08 1 xff09 对大量消费者提供产品或服务的企业可以利用大数据进行精准营销 xff1b xff08 2 xff09 做小而美模式的中小微企业可以利用大数据

随机推荐

  • 2020-11-25

    网格计算和云计算有相似之处 xff0c 特别是计算的并行与合作的特点 xff1b 但他们的区别也是明显的 主要有以下几点 xff1a 首先 xff0c 网格计算的思路是聚合分布资源 xff0c 支持虚拟组织 xff0c 提供高层次的服务 x
  • 2020-12-22

    云计算主要包含哪些关键技术 xff1f 1 虚拟化技术 xff1a 云计算的虚拟化技术不同于传统的单一虚拟化 xff0c 它是涵盖整个IT架构的 xff0c 包括资源 网络 应用和桌面在内的全系统虚拟化 xff0c 它的优势在于能够把所有硬
  • ubuntu nfs服务器设置-调试成功

    转载地址 xff1a http www cnblogs com doctorqbw archive 2012 02 03 2337411 html 1 安装nfs服务 xff0c apt get install nfs common nfs
  • 2020-12-28

    大数据发展必备三个条件 大数据概念的横空出世 xff0c 有赖于短短几年出现的海量数据 据统计 xff0c 互联网上的数据每两年翻一番 xff0c 而目前世界上90 以上的数据都是最近几年才产生的 当然 xff0c 海量数据仅仅是 大数据
  • Casbin

    Model Model语法 Model CONF 至少应包含四个部分 request definition policy definition policy effect matchers 如果 model 使用 RBAC 还需要添加 ro
  • STM32串口发送字符串

    在STM32串口学习中 xff0c 串口发送字符串是必不可少的 xff0c 但是 在学习过程中可能会遇到下面这个问题 xff0c 就由我来给大家分享一下吧 下面是封装的串口发送字符串的函数 xff1a void Usart SendStri
  • 树莓派4b安装Ubuntu20.04+ROS-noetic(也适用于历史版本)

    树莓派4b安装Ubuntu20 04 43 ros noetic 前言一 镜像下载二 烧录系统1 插入tf卡 xff0c 首先对tf卡进行格式化2 烧录镜像方法1 官方烧录软件 Raspberry Pi Imager方法2 Win32Dis
  • vscode 项目中安装配置webpack及其插件

    1 安装webpack 在终端运行如下的命令 xff0c 安装webpack相关的两个包 xff1a npm install webpack 64 5 42 1 webpack cli 64 4 7 2 D D表示 xff1a npm安装完
  • 【02】FreeRTOS获取10.4.6源码+移植到STM32F429步骤

    目录 1 获取FreeRTOS源码 1 1 FreeRTOS官网下载步骤 1 2FreeRTOS源码内容 1 3FreeRTOS内核文件 1 3 1Demo文件夹 1 3 2Source文件夹 2 FreeRTOS移植 2 1添加FreeR
  • M1-MAC-MYSQL安装+启动的笔记

    前言 xff1a 安装Mysql之前应该先安装JAVA JDK 1 开始安装Mysql xff08 1 xff09 下载Mysql xff1a 官网下载地址 xff1a https dev mysql com downloads mysql
  • OpenCV 与 OpenGL 的区别与关系是什么?

    老婆和老婆饼的关系 没啥关系 xff01 CV Computer Vision 和CG Computer Graphics 两者的区别和联系 CV相当于给了计算机摄像头 xff1f 让它捕获处理视觉信息的技术 xff0c 比如进行图像分类
  • 自制STLinkV2.1

    步骤 绘制原理图 layout 打板 焊接 烧录固件 更新固件 绘制原理图 layout 为了方便焊接 xff0c 元器件都放同一面 烧录固件 用现有STLink及软件STM32 ST LINK Utility为其烧录固件 软件及固件已打包
  • IAR下载报错 “Fatal error: Failed to connect to CPU Session aborted!”

    当IAR下载程序进入单片机运行时出现这个弹窗之后就再也下载不进去程序了 xff0c 报以下错误 解决办法 xff1a 这时候就需要对单片机进行复位了 xff0c 一般是先看电路有没有复位按键如果没有复位按键则需要找到复位电路然后找到电路中的
  • uboot和ubuntu ping通测试结果

    前一段时间开始研究uboot xff0c 首先遇到的问题就是下载的别人移植的uboot始终ping不通主机 xff08 Windows中VMWare虚拟机中的ubuntu10 04 xff09 这几天终于找到了一份可以配合手头开发板的移植说
  • PID算法原理及基本实现

    自动控制中 xff0c PID及其衍生出来的算法是应用最广的算法之一 各个做自动控制的厂家基本都有会实现这一经典算法 我们在做项目的过程中 xff0c 也时常会遇到类似的需求 xff0c 所以就想实现这一算法以适用于更多的应用场景 1 PI
  • linux下miniconda+torch环境配置

    几个很简单的步骤却陆陆续续配置了一整天 记录一下 部分步骤来自该博文 xff1a https blog csdn net m0 46336568 article details 127836072 下载miniconda安装包 wget c
  • 树莓派4B安装Ubuntu18.04 + vnc远程桌面

    在实验室对写程序的欲望越来越低下的时候 xff0c 学长给了一个树莓派4B xff0c 让我研究一下 xff0c 因为机器人的上位机就靠它运行 一说新东西我就来劲了 xff0c 可惜实验室里没有SD卡 xff08 旧的断掉了 xff09 x
  • 字符串简单操作(C++中的strrev函数)

    C 43 43 中有函数strrev xff0c 功能是对字符串实现反转 xff0c 但是要记住 xff0c strrev函数只对字符数组有效 xff0c 对string类型是无效的 如下题所示 xff1a Ignatius likes t
  • STC学习:蜂鸣器

    本文需要用到定时器与中断的相关内容 xff0c 已做该内容总结 xff1a STC学习 xff1a 定时器与中断 程序设计目标及程序运行效果说明 程序设计目标 xff1a 通过按下按键1来控制无源蜂鸣器的发声 程序运行效果说明 xff1a
  • STM32F103寄存器方式点亮LED流水灯

    一 点灯 点亮LED灯 xff0c 需要用到GPIO端口 为了点亮LED灯 xff0c 需要三个步骤 xff1a 打开GPIO口的时钟 初始化GPIO口 xff08 选择推挽输出 xff09 设置低电平 1 打开时钟 gpio地址 2 时钟