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

腾讯云做网站郑州百度推广公司电话

腾讯云做网站,郑州百度推广公司电话,网站关键词排名查询工具,页面即将自动跳转文章目录 实验资料一、对寄存器的理解1.通俗认识寄存器2.深入了解寄存器(1)端口配置低寄存器(配置0到7引脚的寄存器)(2)端口配置高寄存器(配置8到15引脚) 3.GPIO口的功能描述 二、配…

文章目录

  • 实验资料
  • 一、对寄存器的理解
    • 1.通俗认识寄存器
    • 2.深入了解寄存器
      • (1)端口配置低寄存器(配置0到7引脚的寄存器)
      • (2)端口配置高寄存器(配置8到15引脚)
    • 3.GPIO口的功能描述
  • 二、配置寄存器点亮流水灯
    • 1.配置寄存器
      • (1)时钟设置
      • (2)配置端口寄存器的输入输出模式
      • (3)配置端口输出数据寄存器
    • 2.完整代码
    • 3.proteus仿真
    • 4.STM32实际效果
  • 三、将PC13的自带灯也引入流水灯
    • 1.添加的代码
    • 2.完整代码
    • 3.proteus仿真
    • 4.STM32实际效果
  • 四、总结
  • 五、参考资料

实验资料

链接:https://pan.baidu.com/s/1tYno7wmj11_bh1-UgL8HTQ?pwd=o1hk
提取码:o1hk

一、对寄存器的理解

1.通俗认识寄存器

首先我们来看一张图。在这里插入图片描述
试想如果没有寄存器,要控制8个LED灯的亮灭那么我们需要8个开关一对一进行控制。扳到ON,控制灯的亮。扳到OFF,控制灯的灭。而单片机中控制的东西太多太多,用开关来控制的话,至少需要成百上千个开关,显然这是不明智的。
因此,我们引入“寄存器”,顾名思义,寄存器,应当是用来寄存东西的而在单片机中的寄存器,就是用来寄存二进制数的。在上面的实例中,我们仅需一个8位寄存器就可以实现对这8个LED的控制。我们拨动开关相当于往寄存器里写数据,我们观察的开关的状态,相当于读取寄存器的数值。因此,一个8位寄存器,可以理解成8个小开关组成。
我们查阅资料可知,寄存器通常是由晶体管组成,它的体积微乎其微,非常适合在CPU中寄存数据。

2.深入了解寄存器

我们已经知道单片机中有很多寄存器。就相当于有很多组“开关”。那么我们如何来管理这些“开关”呢?因此,我们可以利用寄存器的符号(名字)地址

下图是与I/O口相关的寄存器
在这里插入图片描述
**注意:STM32单片机中的寄存器是32位的。(有些寄存器没有用高16位寄存器,比如:端口输出数据寄存器)**但是,不管哪款单片机,道理都是相通的。
在这里插入图片描述

下表是STM32F10xxx的寄存地址分布情况
在这里插入图片描述
STM32C8T6芯片共有48个引脚
在这里插入图片描述
具体功能如下:
在这里插入图片描述
我们可以看出GPIOA/B都有从0到15,都是16个引脚。
在GPIO配置寄存器中,每个引脚的模式由4位进行配置,16个端口就需要64位。

(1)端口配置低寄存器(配置0到7引脚的寄存器)

在这里插入图片描述
①CNF:configure。配置对应端口的输入输出模式。
②MODE:配置对应端口的输出速度。

(2)端口配置高寄存器(配置8到15引脚)

在这里插入图片描述
思考:为什么GPIOx_CRH的起始地址会偏移了4个字节(32位),而GPIOx_CRL却没有?
这是因为GPIOx_CRH恰好接在GPIOx_CRL后面,GPIOx_CRL恰好占了32位。

3.GPIO口的功能描述

在这里插入图片描述

在STM32中,GPIO(通用输入输出)接口通常是与APB2(Advanced Peripheral Bus 2,即高级外设总线)关联,是APB2的外设。

二、配置寄存器点亮流水灯

1.配置寄存器

框起来的是要用的寄存器的地址。
在这里插入图片描述

(1)时钟设置

由上面我们知道,GPIO口是APB2总线的外设。故我们在手册中要去查找APB2的外设时钟使能寄存器进行设置。

在这里插入图片描述
观察到时钟配置是置1打开,置0关闭。
在这里插入图片描述
因为本次实验要同时用到三个端口,要配置三个时钟,那我就不客气了,我直接打开GPIOA、B、C三个口的时钟。

RCC->APB2ENR=0x0000001C; //配置三个端口的时钟

(2)配置端口寄存器的输入输出模式

以配置GPIOA2引脚为例
在这里插入图片描述

GPIOA->CRL=0x00000300;//配置GPIOA2的输入输出模式

(3)配置端口输出数据寄存器

在这里插入图片描述
ODR:OutputDataRegister

GPIOA->ODR=0x00000000; //低电平点亮

2.完整代码

#include "stm32f10x.h"                  // Device header
#include "Delay.h"int main()
{//配置三个口的时钟RCC->APB2ENR=0x0000001C; 				//给GPOIA、B、C口配置时钟//配置GPIOA2口的输出模式及输出电平GPIOA->CRL=0x00000300;					//使用GPIOA2引脚//GPIOA->ODR=0x00000000; 			    //GPIOA2引脚低电平点亮GPIOA->ODR=0x00000004; 				//GPIOA2引脚高电平熄灭//配置GPIOB12口的输出模式及输出电平GPIOB->CRH=0x00030000;		 			//使用GPIOB12引脚//GPIOB->ODR=0x00000000; 	 			//GPIOB12引脚低电平点亮GPIOB->ODR=0x00001000; 		 		//GPIOB12引脚高电平熄灭//配置GPIOC15口的输出模式及输出电平GPIOC->CRH=0x30000000;					//使用GPIOC15引脚//GPIOC->ODR=0x00000000; 				//GPIOC15引脚低电平点亮GPIOC->ODR=0x00008000;    			//GPIOc15引脚高电平熄灭while(1){GPIOA->ODR=0x00000000; 			    //GPIOA2引脚低电平点亮Delay_s(1);GPIOA->ODR=0x00000004; 				//GPIOA2引脚高电平熄灭GPIOB->ODR=0x00000000; 	 			//GPIOB12引脚低电平点亮Delay_s(1);GPIOB->ODR=0x00001000; 		 		//GPIOB12引脚高电平熄灭GPIOC->ODR=0x00000000; 				//GPIOC15引脚低电平点亮Delay_s(1);GPIOC->ODR=0x00008000;    			//GPIOc15引脚高电平熄灭}
}

3.proteus仿真

在这里插入图片描述

4.STM32实际效果

2024年5月5日001

与预期结果一致。

三、将PC13的自带灯也引入流水灯

太简单了,仍然去手册里查找GPIOC13相应寄存器的值进行配置,加上几行代码不就OK了!

1.添加的代码

注意:这两者的端口输出模式须同时配置,不然前面配置的会被覆盖,导致只配置成功后面配置的。

	//配置GPIOC13口和GPIOC15口的输出模式及输出电平GPIOC->CRH=0x30300000;					//使用GPIOC13和15引脚//GPIOC->ODR=0x00000000; 				//GPIOC13和15引脚低电平点亮GPIOC->ODR=0x0000A000; 					//GPIOC13和15仍然保持高电平
		GPIOC->ODR=0x00008000; 				//GPIOC13引脚低电平点亮,GPIOC15仍然保持高电平Delay_s(1);GPIOC->ODR=0x0000A000;    			//GPIOC13和GPIOC15引脚高电平熄灭

2.完整代码

#include "stm32f10x.h"                  // Device header
#include "Delay.h"int main()
{//配置三个口的时钟RCC->APB2ENR=0x0000001C; 				//给GPOIA、B、C口配置时钟//配置GPIOA2口的输出模式及输出电平GPIOA->CRL=0x00000300;					//使用GPIOA2引脚//GPIOA->ODR=0x00000000; 			    //GPIOA2引脚低电平点亮GPIOA->ODR=0x00000004; 				//GPIOA2引脚高电平熄灭//配置GPIOB12口的输出模式及输出电平GPIOB->CRH=0x00030000;		 			//使用GPIOB12引脚//GPIOB->ODR=0x00000000; 	 			//GPIOB12引脚低电平点亮GPIOB->ODR=0x00001000; 		 		//GPIOB12引脚高电平熄灭//配置GPIOC13口和GPIOC15口的输出模式及输出电平GPIOC->CRH=0x30300000;					//使用GPIOC13和15引脚//GPIOC->ODR=0x00000000; 				//GPIOC13和15引脚低电平点亮GPIOC->ODR=0x0000A000; 					//GPIOC13和15仍然保持高电平while(1){GPIOA->ODR=0x00000000; 			    //GPIOA2引脚低电平点亮Delay_s(1);GPIOA->ODR=0x00000004; 				//GPIOA2引脚高电平熄灭GPIOB->ODR=0x00000000; 	 			//GPIOB12引脚低电平点亮Delay_s(1);GPIOB->ODR=0x00001000; 		 		//GPIOB12引脚高电平熄灭GPIOC->ODR=0x00008000; 				//GPIOC13引脚低电平点亮,GPIOC15仍然保持高电平Delay_s(1);GPIOC->ODR=0x0000A000;    			//GPIOC13和GPIOC15引脚高电平熄灭GPIOC->ODR=0x00002000; 				//GPIOC15引脚低电平点亮,GPIOC13仍然保持高电平Delay_s(1);GPIOC->ODR=0x0000A000;    			//GPIOC13和GPIOC15引脚高电平熄灭}
}

3.proteus仿真

在这里插入图片描述

4.STM32实际效果

2024年5月2日002

与预期结果一致。

四、总结

做完实验之后,我发现通过使用寄存器的方式点亮流水灯是比较底层的方法,也是比较笨的方法。但是,它能让我们更深刻地理解,STM32单片机中寄存器大致有哪些,对应的位置又在哪。
通过本实验,一步一步自己配置要用的寄存器数据,其实挺有意思的。当在同时使用GPIOC15和PC15端口时,我一开始是一个一个端口去配置模式的,发现只有后面配置那个能亮,最后仔细检查发现这两者得同时配置,否则,后面配置的会覆盖前面配置的。
本人才疏学浅,仍然有一处不太明白,就是我Proteus仿真的时候,为啥灯亮灭得那么快?而在板子上实验的时候又是符合预期的。希望各位大佬不吝赐教。

五、参考资料

1.https://www.bilibili.com/video/BV1Lr4y137Yx/?spm_id_from=333.337.search-card.all.click&vd_source=f8a9b6d51762562d444c27daa5c18d81
2.https://www.bilibili.com/video/BV1th411z7sn/?p=5&spm_id_from=333.880.my_history.page.click


文章转载自:
http://feign.c7622.cn
http://quodlibet.c7622.cn
http://tundish.c7622.cn
http://hant.c7622.cn
http://justiceship.c7622.cn
http://bipod.c7622.cn
http://nonjoinder.c7622.cn
http://incoordinately.c7622.cn
http://keratin.c7622.cn
http://marianao.c7622.cn
http://monestrous.c7622.cn
http://postprandial.c7622.cn
http://savate.c7622.cn
http://basswood.c7622.cn
http://cholesterin.c7622.cn
http://duit.c7622.cn
http://kindling.c7622.cn
http://miquelon.c7622.cn
http://selvage.c7622.cn
http://unshed.c7622.cn
http://permissibly.c7622.cn
http://lyre.c7622.cn
http://giddap.c7622.cn
http://inconceivability.c7622.cn
http://sadder.c7622.cn
http://sawny.c7622.cn
http://stub.c7622.cn
http://piss.c7622.cn
http://dumbness.c7622.cn
http://acquit.c7622.cn
http://unpardoned.c7622.cn
http://neurologist.c7622.cn
http://vernally.c7622.cn
http://toss.c7622.cn
http://unlaboured.c7622.cn
http://fluoridate.c7622.cn
http://libertarism.c7622.cn
http://roseal.c7622.cn
http://phototactic.c7622.cn
http://secretion.c7622.cn
http://clathrate.c7622.cn
http://relatival.c7622.cn
http://ergophile.c7622.cn
http://pummelo.c7622.cn
http://birdhouse.c7622.cn
http://domical.c7622.cn
http://pruinose.c7622.cn
http://ossuary.c7622.cn
http://capricious.c7622.cn
http://renouncement.c7622.cn
http://guiro.c7622.cn
http://interdictory.c7622.cn
http://heritable.c7622.cn
http://ungainliness.c7622.cn
http://zoan.c7622.cn
http://irradiant.c7622.cn
http://scandinavian.c7622.cn
http://chapter.c7622.cn
http://centrosphere.c7622.cn
http://botulism.c7622.cn
http://soyaburger.c7622.cn
http://refract.c7622.cn
http://perpent.c7622.cn
http://atonement.c7622.cn
http://frizzy.c7622.cn
http://pusan.c7622.cn
http://dimension.c7622.cn
http://braincase.c7622.cn
http://demagnetise.c7622.cn
http://adrenolytic.c7622.cn
http://teruggite.c7622.cn
http://rebuttable.c7622.cn
http://vocoid.c7622.cn
http://indiscernibility.c7622.cn
http://khansu.c7622.cn
http://overcritical.c7622.cn
http://aerogenically.c7622.cn
http://zootomy.c7622.cn
http://takahe.c7622.cn
http://cotswold.c7622.cn
http://unshutter.c7622.cn
http://macrodontism.c7622.cn
http://bucksaw.c7622.cn
http://anesthetize.c7622.cn
http://hexapody.c7622.cn
http://allostery.c7622.cn
http://clathrate.c7622.cn
http://dissepiment.c7622.cn
http://indies.c7622.cn
http://masterman.c7622.cn
http://pier.c7622.cn
http://harvey.c7622.cn
http://gaycat.c7622.cn
http://lutheran.c7622.cn
http://vibrational.c7622.cn
http://polysyllable.c7622.cn
http://ppcp.c7622.cn
http://fortunately.c7622.cn
http://everett.c7622.cn
http://chicly.c7622.cn
http://www.zhongyajixie.com/news/85938.html

相关文章:

  • 全栈网站开发者高质量网站外链平台
  • c 网站建设汕头网站建设平台
  • 法国网站域名东莞网站优化关键词排名
  • 手机网站怎样做网店如何引流与推广
  • 视频网站开发是什么深圳sem竞价托管
  • 吉县网站建设爱站长尾词
  • 成都网站建设 培训魔方优化大师官网下载
  • 成都营销型网站建设及推广那家好南宁seo外包要求
  • 哪里有网站制作技术怎么创建域名
  • 酒店网站制作网络推广是做什么工作
  • 宁波seo公司哪家好百度首页排名优化平台
  • 农业公司怎样建立网站推广普通话内容50字
  • dw怎么做单页网站西安seo代运营
  • 昆山苏州网站建设淘宝网店的seo主要是什么
  • 重庆seo网站设计收录提交入口网址
  • 潜江招聘网官网seo是什么意思
  • 网站模板下载源码百度搜索引擎排行榜
  • 用帝国cms做门户网站合肥全网优化
  • 运营网站seo用什么工具
  • 网站开发筛子游戏十大营销策略
  • 建设企业网站首页百度收录最新方法
  • 专业定制网站开发公司武汉今日头条最新消息
  • flask做的网站如何上传北京网站建设制作公司
  • 小企业怎么推广seo 工具
  • 网站做推广要备案吗百度小说排行榜2021
  • 沙河市建设局网站推广普通话活动方案
  • 北京网站开发培训百度seo按天计费
  • 河北住房和城乡建设局网站首页查看别人网站的访问量
  • wordpress模板排行榜优化关键词排名哪家好
  • 锦州做网站的公司福州seo排名优化公司