打印
[其他]

C8T6流水灯寄存器设置

[复制链接]
783|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
文章目录:
1、原理学习。学习和理解STM32F103系列芯片的地址映射和寄存器映射原理;了解GPIO端口的初始化设置三步骤(时钟配置、输入输出模式设置、最大速率设置)。
2、假设你手中已有 STM32最小系统核心板(STM32F103C8T6)+面板板+3只红绿蓝LED,并搭建了电路,分别GPIOA-5、GPIOB-9、GPIOC-14 这3个引脚上控制LED灯(最高时钟2Mhz),轮流闪烁,间隔时长1秒。
3、安装 stm32CubeMX,用cubemx完成初始化过程,采用HAL库编程实现。
4、在Keil下用软件仿真运行上面代码,并用虚拟逻辑分析仪观察 对应管脚上的输出波形(高低电平转换),看是否是1秒的周期。
1、原理学习。学习和理解STM32F103系列芯片的地址映射和寄存器映射原理;了解GPIO端口的初始化设置三步骤(时钟配置、输入输出模式设置、最大速率设置)。

使用特权

评论回复
评论
高级安全大使 2023-1-29 13:27 回复TA
———————————————— 版权声明:本文为CSDN博主「qq_57244669」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/qq_57244669/article/details/127153719 

相关帖子

沙发
高级安全大使|  楼主 | 2023-1-29 13:33 | 只看该作者
寄存器

(1)寄存器的含义
寄存器是CPU内部用来存放数据的一些小型存储区域,用来暂时存放参与运算的数据和运算结果。其实寄存器就是一种常用的时序逻辑电路,但这种时序逻辑电路只包含存储电路。寄存器的存储电路是由锁存器或触发器构成的,因为一个锁存器或触发器能存储1位二进制数,所以由N个锁存器或触发器可以构成N位寄存器。寄存器是中央处理器内的组成部分。寄存器是有限存储容量的高速存储部件,它们可用来暂存指令、数据和位址。

使用特权

评论回复
板凳
高级安全大使|  楼主 | 2023-1-29 13:37 | 只看该作者
(2)寄存器具有的四个功能
①清除数码:将寄存器里的原有数码清除。
②接收数码:在接收脉冲作用下,将外输入数码存入寄存器中。
③存储数码:在没有新的写入脉冲来之前,寄存器能保存原有数码不变。
④输出数码:在输出脉冲作用下,才通过电路输出数码。
仅具有以上功能的寄存器称为数码寄存器;有的寄存器还具有移位功能,称为移位寄存器。

使用特权

评论回复
地板
高级安全大使|  楼主 | 2023-1-29 13:37 | 只看该作者
2.地址映射和寄存器映射原理

通过查看数据手册找到某个寄存器的地址。
手册中没有直接给出所有的寄存器的地址,需要稍加计算。STM32给不同的寄存器分配了不同的地址,有点像划分了片区。在《STM32中文参考手册_V10》的第28页,有不同寄存器的地址范围。
  假如我们想读取PB3引脚的电平,需要查询PB3的地址。
第一步,PB3是在GPIOB端口内,所以要找到GPIOB的基地址
  也就是找到GPIOB的地址范围。结论是,所有GPIOB相关的寄存器,地址都在0x4001 0C00到0x4001 0FFF范围内。

使用特权

评论回复
5
高级安全大使|  楼主 | 2023-1-29 13:38 | 只看该作者
程序设计思路:
将GPIOA-5、GPIOB-9、GPIOC-14 三个引脚时钟连接总线APB2,设置三个硬件输出模式为推挽输出,并将输出速率设置为2MKZ。接下来设置一个延时函数Delay();将LED灯正极连接各个引脚,输出高电平则亮,然后在main函数中设置流水循环。


经过这三步查找,我们可以做出以下结论:
PB3的输入数据位于0x4001 0C08这个地址上,这个地址上存放数据的右起第4个位就是PB3引脚对应的高低电平。

使用特权

评论回复
6
高级安全大使|  楼主 | 2023-1-29 13:39 | 只看该作者
直接访问这个地址:
unsigned int *pGPIOB_IDR = (unsigned int *)0x40010C08; unsigned char PB3 = *pGPIOB_IDR & 0x8;//取出从右往左数的第4位

使用特权

评论回复
7
高级安全大使|  楼主 | 2023-1-29 16:55 | 只看该作者
2、GPIO端口的初始化设置三步骤(时钟配置、输入输出模式设置、最大速率设置)

本次实验采用GPIOA、B、C三个端口。该三个端口都属于APB2总线


2.输入输出模式和输出速率设置
本次实验采用通用推挽输出模式,最高输出时钟频率2Mhz。分别用到A4、B5、C14三个引脚。其中A4、B5属于端口配置低寄存器偏移地址为0x00,C13属于端口配置高寄存器偏移地址为0x04。

使用特权

评论回复
8
高级安全大使|  楼主 | 2023-1-29 17:00 | 只看该作者
工程建立:

使用特权

评论回复
9
高级安全大使|  楼主 | 2023-1-29 17:00 | 只看该作者
GPIO配置:
定义:

使用特权

评论回复
10
高级安全大使|  楼主 | 2023-1-29 17:02 | 只看该作者
连接时钟:

使用特权

评论回复
11
高级安全大使|  楼主 | 2023-1-29 17:02 | 只看该作者
IO配置:

使用特权

评论回复
12
高级安全大使|  楼主 | 2023-1-29 17:02 | 只看该作者
分别是GPIOA-5、GPIOB-9、GPIOC-14;

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

41

主题

359

帖子

1

粉丝