基于寄存器的STM32操作流程

寄存器点灯

寄存器操作STM32的好处是不需要依靠外部文件,自由度更高,更为底层,但也更加繁杂。

通过寄存器点灯,需要按照电路结构与手册配置寄存器:

电路结构如下:可知需配置的GPIO为GPIOB5与GPIOE5。

在STM32中,一般外设需配置三个寄存器:

首先配置APB2外设时钟使能寄存器,

按手册,需配置IOPE(6位),IOPB(3位),使其为1,其余为0,则16进制为:0x00000048,代码为:

cpp 复制代码
RCC->APB2ENR=0x00000048;

接着配置端口配置寄存器,

按原理图可知,需配置GPIOB5与GPIOE5,手册上5位为低寄存器,且输出模式需为通用推挽输出,最大速度为50HZ,则CNF为00,MODE为11,则20,21为1,其余赋值为0,写成16进制,为0x00300000,代码为:

cpp 复制代码
GPIOE->CRL=0x00300000;//LED1
GPIOB->CRL=0x00300000;//LED0

即配置完毕。

配置端口输出数据寄存器:

按说明手册,ODR为1,则整体16进制值为0x00000040,则代码为

cpp 复制代码
GPIOB->ODR=0x00000040;
GPIOB->ODR=0x00000040;

配置完毕。

接着依靠keil生成的可执行文件下入开发板即可,完整代码为:

cpp 复制代码
#include "stm32f10x.h"                  // Device header
int main(void)
{
	RCC->APB2ENR=0x00000048;
	GPIOE->CRL=0x00300000;//LED1
  GPIOB->CRL=0x00300000;//LED0
	GPIOB->ODR=0x00000040;
  GPIOB->ODR=0x00000040;
	while(1)
	{}
}

现象为LED0与LED1一直亮。

相关推荐
森焱森3 小时前
水下航行器外形分类详解
c语言·单片机·算法·架构·无人机
小殷学长5 小时前
【单片机毕业设计17-基于stm32c8t6的智能倒车监测系统】
stm32·单片机·课程设计
TESmart碲视6 小时前
HKS201-M24 大师版 8K60Hz USB 3.0 适用于 2 台 PC 1台显示器 无缝切换 KVM 切换器
单片机·嵌入式硬件·物联网·游戏·计算机外设·电脑·智能硬件
small_wh1te_coder7 小时前
硬件嵌入式学习路线大总结(一):C语言与linux。内功心法——从入门到精通,彻底打通你的任督二脉!
linux·c语言·汇编·嵌入式硬件·算法·c
花落已飘8 小时前
STM32中实现shell控制台(shell窗口输入实现)
stm32·单片机·嵌入式硬件
花落已飘8 小时前
STM32中实现shell控制台(命令解析实现)
stm32·shell
没有钱的钱仔8 小时前
STM32低功耗模式全面指南
css·stm32·css3
牵牛老人10 小时前
Qt处理USB摄像头开发说明与QtMultimedia与V4L2融合应用
stm32·单片机·qt
宇钶宇夕11 小时前
针对工业触摸屏维修的系统指南和资源获取途径
单片机·嵌入式硬件·自动化
和风化雨11 小时前
stm32的三种开发方式
stm32·单片机·嵌入式硬件