用寄存器&HAL库完成LED流水灯程序

这篇作业报告详细介绍了如何使用STM32F103C8T6单片机通过寄存器和HAL库实现LED流水灯程序。内容涵盖GPIO端口初始化的三个步骤、地址映射和寄存器映射原理,并通过STM32CubeMX配置HAL库,最后在Keil下进行软件仿真和逻辑分析验证1秒周期的闪烁效果。
摘要由CSDN通过智能技术生成

重庆交通大学信息科学与工程学院

《嵌入式系统开发》课程

作业报告(第4周)

班 级: 通信工程2001

姓名-学号 : 阎桂董-632007030622

实验项目名称: 作业题目

实验项目性质: 设计性

实验所属课程: 《嵌入式系统开发》

实验室(中心): 南岸校区语音大楼

指 导 教 师 : 娄路

完成时间: 2022 10 12


一、实验内容和任务

用寄存器&HAL库完成LED流水灯程序

二、实验要求

1. 分组要求:每个学生独立完成,即1人1组。

2. 程序及报告文档要求:具有较好的可读性,如叙述准确、标注明确、截图清晰等。

3.项目代码上传github,同时把项目完整打包为zip文件,与实验报告(Markdown源码及PDF文件)、作业博客地址一起提交到学习通。

三. 实验过程介绍

1、学习和理解STM32F103系列芯片的地址映射和寄存器映射原理;了解GPIO端口的初始化设置三步骤(时钟配置、输入输出模式设置、最大速率设置)

2、假设你手中已有 STM32最小系统核心板(STM32F103C8T6)+面板板+3只红绿蓝LED,并搭建了电路,分别GPIOA-5、GPIOB-9、GPIOC-14 这3个引脚上控制LED灯(最高时钟2Mhz),轮流闪烁,间隔时长1秒。

1)写出程序设计思路,包括GPIOx端口的各寄存器地址和详细参数;

2)用C语言 寄存器方式编程实现。

3)安装 stm32CubeMX,用cubemx完成初始化过程,采用HAL库编程实现。

4)在Keil下用软件仿真运行上面代码,并用虚拟逻辑分析仪观察 对应管脚上的输出波形(高低电平转换),看是否是1秒的周期。

四、STM32F103系列芯片的地址映射和寄存器映射原理

1、寄存器

1)寄存器是中央处理器内的组成部分。 寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和地址。

2)简单来说,寄存器就是存放东西的一个空间器物。寄存器可能存放的是指令、数据或地址。

3)按照功能的不同,可将寄存器分为基本寄存器和移位寄存器两大类。基本寄存器只能并行送入数据,也只能并行输出。移位寄存器中的数据可以在移位脉冲作用下依次逐位右移或左移,数据既可以并行输入、并行输出,也可以串行输入、串行输出,还可以并行输入、串行输出,或串行输入、并行输出,十分灵活,用途也很广。

4)存放数据的寄存器是最好理解的,如果你需要读取一个数据,直接到这个寄存器所在的地方来问问他,数据是多少就行了。问寄存器这个动作,叫做访问寄存器。不同的数据会存放在不同的寄存器,例如引脚PA2与PB8的高低电平数据(1或0)肯定放在不同的寄存器里,那么怎么区分不同的寄存器呢?通过地址,不同的寄存器有不同的地址,就像老张行李寄存处在101号店铺,老王行李寄存处在258号店铺。

5)指令、地址寄存器与数据寄存器类似,里边存放的都是0和1,毕竟单片机也只认识机器码,机器码都是0或1,只是特别的规定下,数据寄存器里面存放的0和1表示数据,指令寄存器里存放的表示指令。

2、地址映射和寄存器映射原理

1)地址映射:由百度词条可知为了保证CPU执行指令时可正确访问存储单元,需将用户程序中的逻辑地址转换为运行时由机器直接寻址的物理地址,这一过程称为地址映射。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-U9EAQihu-1668514113809)(C:\Users\ASUS\Desktop\屏幕截图 2022-10-13 221321.png)]

2)寄存器映射:在存储器的区域单元中,每一

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值