STM32F103实现点灯(寄存器方式)

参考:STM32F103系列最简易版点灯程序
作者:一只青木呀
发布时间:2020-10-21 11:40:38
网址:https://blog.csdn.net/weixin_45309916/article/details/109196950

目录

  • 硬件
  • 软件
  • 点灯流程
    • 使能GPIO端口E和B对应的时钟
      • 找到GPIO对应的时钟
      • 找到时钟对应的基地址(起始地址)
      • 打开GPIO端口B和端口E对应的时钟(偏移地址——>寄存器)
    • 找到LED灯对应的GPIO端口E和B寄存器的基地址
      • 打开底板原理图找到LED灯的引脚
      • 找到LED0和LED1对应的引脚
      • 打开数据手册找到其基地址
    • 设置其端口为输出模式
      • 配置PE5为输出模式
      • 配置PB5为输出模式
    • 设置其为低电平(LED灯亮低电平触发)
      • 设置PE5为低电平
      • 设置PB5为低电平
  • 烧写程序

硬件

STM32103最小系统开发板

注:江江视频使用的开发板是STM32103 C8T6

在这里插入图片描述

软件

keil软件

点灯流程

1、使能GPIO端口B和E对应的时钟
2、找到LED灯对应的GPIO端口E和B寄存器的基地址
3、设置其端口PE5、PB5为输出模式(端口配置寄存器)
4、设置其为低电平(输出数据寄存器)

使能GPIO端口E和B对应的时钟

找到GPIO对应的时钟

在STM32F1XX中文参考手册第二章存储器和总线构架
2.1 系统构架里找到
在这里插入图片描述
在这里插入图片描述
GPIOB、GPIOE对应的时钟为APB2,APB2和APB1都挂载在AHB系统总线上。

找到时钟对应的基地址(起始地址)

在这里插入图片描述

其基地址为:0x40021000

打开GPIO端口B和端口E对应的时钟(偏移地址——>寄存器)

找到了初始地址,下面就要找他的偏移地址,也就是找相对应的寄存器

在这里插入图片描述
由上图可知,这个寄存器有32位,我们将寄存器相应位数置为0或者1,可以打开其相应的功能。
在这里插入图片描述

代码实现:

复位和时钟控制器得基地址为:0x40021000
偏移值为:0x18
得到APB2外设寄存器地址为:0x40021018

使能IO端口B和IO端口E(即设置寄存器的第6位和第3位为1):

	*(unsigned int *)0x40021018 |= 0x01 << 6;//强转成指针再取内容*(unsigned int *)0x40021018 |= 0x01 << 3;

找到LED灯对应的GPIO端口E和B寄存器的基地址

打开底板原理图找到LED灯的引脚

在这里插入图片描述

找到LED0和LED1对应的引脚

LED1对应的引脚为GPIO端口E的PE5
在这里插入图片描述

LED0对应的引脚为GPIO端口B的PB5
在这里插入图片描述

打开数据手册找到其基地址

在这里插入图片描述
在这里插入图片描述
可看到GPIO端口E的基地址为:0x4001 1800
可看到GPIO端口B的基地址为:0X4001 0C00

设置其端口为输出模式

配置PE5为输出模式

注:0-7为低 8-15为高 PE5 这个5就为低
在这里插入图片描述

代码实现:
上面得到了PE5的基地址为:0x40011800
偏移地址为:0x00
得GPIOE_CRL寄存器地址为:0x40011800

*(unsigned int *)0x40011800 |= (0x0001) <<20;//或操作不会改变其他位

配置PB5为输出模式

在这里插入图片描述
代码实现:
上面得到了PB5的基地址为:0X40010C00
偏移地址为:0x00
得GPIOB_CRL寄存器地址为:0X40010C00

*(unsigned int *)0x40010C00 |= (0x01) <<20;

设置其为低电平(LED灯亮低电平触发)

设置PE5为低电平

在这里插入图片描述
配置GPIOE_ODR(输出数据寄存器out date register)寄存器得第5位为0.

代码实现:
上面得到了PB5的基地址为:0x40011800
偏移地址为:0x0C
得GPIOE_ODR寄存器地址为:0x4001180C

*(unsigned int *)0x4001180C &= ~(0x01 <<5);

设置PB5为低电平

在这里插入图片描述
代码实现:
上面得到了PB5的基地址为:0X40010C00
偏移地址为:0x0C
得GPIOE_CRL寄存器地址为:0X40010C0C

*(unsigned int *)0x40010C00 &= ~(0x01 <<5);

烧写程序

程序代码:
在这里插入图片描述
下载安装烧写软件FlyMcu,USB转TTL也要安装好,接线,找到串口的IO口对应好。需要拔插一下boot按钮(boot0置1,上一篇讲过串口下载方式的原理讲解)。

按下复位键开始烧写,如下图所示:

这个是江江使用的烧写软件进行烧写过程显示:在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

boot0重新拔插置0,按压一下复位键

结果:两个灯都亮了!
在这里插入图片描述

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

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

相关文章

rocketmq 消费方式_RocketMQ事务消费和顺序消费详解

一、RocketMq有3中消息类型1.普通消费2. 顺序消费3.事务消费顺序消费场景在网购的时候&#xff0c;我们需要下单&#xff0c;那么下单需要假如有三个顺序&#xff0c;第一、创建订单 &#xff0c;第二&#xff1a;订单付款&#xff0c;第三&#xff1a;订单完成。也就是这个三个…

列出我所知道的图像处理库

&#xff11;&#xff0e;对OpenCV的印象&#xff1a;功能十分的强大&#xff0c;而且支持目前先进的图像处理技术&#xff0c;体系十分完善&#xff0c;操作手册很详细&#xff0c;手册首先给大家补计算机视觉的知识&#xff0c;几乎涵盖了近10年内的主流算法&#xff1b;然后…

GPIO输入输出模式原理(八种工作方式附电路图详解)

这几篇博文讲的不错&#xff0c;可参照着理解&#xff1a; STM32下拉输入模式与振动传感器的使用 “上拉电阻与下拉电阻”通俗解读 上、下拉电阻&#xff08;定义、强弱上拉、常见作用、吸电流、拉电流、灌电流&#xff09; 个人总结&#xff1a; 模拟量选浮空输入&#xff0c…

webpack打包后引用cdn的js_利用CDN加速react webpack打包后的文件详解

此文不介绍webpack基本配置&#xff0c;如果对基本配置有疑问请查阅官方文档。1、配置webpack.config.js将output.publicPath改成上传到的cdn地址, 例(对应上面上传配置)&#xff1a;publicPath: "https://your_base_cdn_url" process.env.NODE_ENV "/cdn/&qu…

STM32F103构建固件库模板(PS固件库文件树介绍)

参考&#xff1a;STM32F103ZE新建固件库模板 作者&#xff1a;追兮兮 发布时间&#xff1a;2020-10-14 10:31:45 网址&#xff1a;https://blog.csdn.net/weixin_44234294/article/details/109065495 参考博文&#xff1a;https://blog.csdn.net/visual_eagle/article/details/…

java ee 中文乱码的问题

java ee 中文乱码的问题发生中文乱码的三种情况(一) 表单formPost 方法直接在服务器中设置request.setCharacterEncoding("utf-8");get方法 自己转码,下面是方法.public class HuanMa{public static String getUTF8(String str){String s"";try {s new St…

深度相机 物体三维重建_基于深度相机进行室内完整场景三维重建的方法及系统_2017100513665_说明书_专利查询_专利网_钻瓜专利网...

S121&#xff1a;采用Kintinuous框架&#xff0c;进行视觉里程计估计&#xff0c;得到每帧深度图像下的相机位姿信息。S122&#xff1a;根据相机位姿信息&#xff0c;将由每帧深度图像对应的点云数据反投影到初始坐标系下&#xff0c;用投影后得到的深度图像与初始帧的深度图像…

STM32F103实现点灯(固件库方式)

参考&#xff1a;stm32上实现点灯 作者&#xff1a;SKY丶丿平才 发布时间&#xff1a; 2021-03-20 16:51:06 网址&#xff1a;https://blog.csdn.net/weixin_48264057/article/details/115028724 目录前言一、硬件设计二、软件设计1.建立工程2.代码编写三、实际验证1.烧写程序2…

strtus2.3 java.lang.NoSuchFieldException: DEFAULT_PARAM

strtus2.3.15.1 的bug请下载 http://download.csdn.net/detail/livalue/6229373 或加群到群共享中下载.214579879

STM32震动感应控制继电器(使用循环VS使用外部中断EXTI和中断控制器NVIC)

参考&#xff1a;stm32的外部中断 震动感应 控制 继电器 作者&#xff1a;点灯小哥 发布时间&#xff1a; 2021-03-05 22:37:01 网址&#xff1a;https://blog.csdn.net/weixin_46016743/article/details/114417161 参考&#xff1a;STM32震动感应灯 作者&#xff1a;一只小阿大…

mysql 查找课程最高分_mysql 查询 学生id最高分的科目和日期

mysql>select*fromstudent;------------------------------|id|subject|mark|date|------------------------------|24|语文|56|2004-11||32|数学|74|2006-5||24|政治|100|2...mysql> select * from student;------------------------------| id | subject | mark | date…

我的lisp启程

Lisp语言仰慕已久&#xff0c;尤其是其作为人工智能的编程语言&#xff0c;感觉明显比其他语言高端不少&#xff0c;加之同班的同学也要自学lisp&#xff0c;就下定决心趁着在校的时候将lisp掌握。大一的时候接触python&#xff0c;觉得python语言特别难学&#xff0c;因为从来…

结构体与共用体(联合体)

参考&#xff1a;结构体与共用体 作者&#xff1a;一只青木呀 发布时间&#xff1a; 2020-08-09 08:29:22 网址&#xff1a;https://blog.csdn.net/weixin_45309916/article/details/107889394 参考&#xff1a;联合体&#xff08;union&#xff09;的使用方法及其本质 作者&am…

mysql 5.6.10 32_安装mysql-5.6.10-win32 解压版-略有修改

1.复制mysql-5.6.10-win32.zip到D:\app目录下.2.解压mysql-5.6.10-win32.zip3.在D:\app\mysql-5.6.10-win32下&#xff0c;复制“my-default.ini”文件&#xff0c;生成“复件 my-default.ini”文件。将“复件 my-default.ini”文件重命名成“my.ini” 。(注意&#xff1a;如果…

培养自信,笑赢未来

注&#xff1a;本文是儿子幼儿园小班第一个月中&#xff0c;老师要求每个学生家长都要交的命题作文。要求基于当前典型的421家庭中&#xff0c;如何培养孩子的自信心成文。为此&#xff0c;我作为家长第一次向老师提交了这篇作文。自信心对一个人的健康成长至关重要&#xff0c…

mysql中当前时间九点_MySQL 获得当前日期时间(以及时间的转换)

1.1 获得当前日期时间(date time)函数&#xff1a;now()除了 now() 函数能获得当前的日期时间外&#xff0c;MySQL 中还有下面的函数&#xff1a;current_timestamp() current_timestamplocaltime() localtimelocaltimestamp() localtimestamp这些日期时间函数&#xff0c;都等…

STM32串口原理、结构体、库函数、串口发送字符(串)、重定向printf串口发送、串口中断接收控制灯、接收不定长数据

参考&#xff1a;串口的结构体 重定向printf串口发送stm32等博文 作者&#xff1a;点灯小哥 发布时间&#xff1a; 2021-03-06 21:46:33 网址&#xff1a;https://blog.csdn.net/weixin_46016743/article/details/114458698 目录串口相关知识定义通信概念1.通讯结构2.电平标准3…

mysql kvdb_从MYSQL到KVDB

2016年4月10日 星期日 阴&#xff0c;雾霾惊悉新浪SAE又多收费了&#xff0c;凡是用Mysql的应用&#xff0c;每天至少要交22448颗云豆的租金。新浪为什么经常干这种事呢&#xff1f;用户会不会怀疑哪天又开始另找名目多收云豆&#xff1f;这跟食堂打菜员给人打菜一样&#xff0…

STM32通用定时器(原理、结构体、库函数、定时器中断每秒闪烁一次灯) —— 时钟源、分频值、重装载值

参考&#xff1a;stm32定时器与定时器中断 作者&#xff1a;打酱油的 发布时间&#xff1a; 2021-04-11 01:04:09 网址&#xff1a;https://blog.csdn.net/weixin_46098612/article/details/115493737 参考&#xff1a;stm32通用定时器结构体函数定时器实现led闪烁 作者&#x…

关于错误error C4430 error C2365 error C2078 error C2440 error C2143的处理。

关于错误error C4430 error C2365 error C2078 error C2440 error C2143的处理。 楼主在公司接手了一段代码。编译的时候发现一个很奇怪的问题&#xff0c;就是获取最新代码的时候能编译通过&#xff0c;然后下次就编译不通过了&#xff0c;提示如下错误。 后来发现问题出在std…