单片机学习小组
登录
直播中
李晨灵
7年用户
1410经验值
私信
关注
如何配置寄存器使STM32最小系统板上的LED灯点亮?
开启该帖子的消息推送
如何配置寄存器使
STM32
最小系统板上的LED灯点亮?
回帖
(1)
李兆峰
2022-2-11 11:54:19
配置寄存器使STM32最小系统板上的LED灯点亮
根据原理图,要使D2点亮,需要将PC13拉低,分为以下步骤:
使能GPIO的时钟
配置GPIO13为输出模式
配置GPIO13输出低电平
一、确定有关寄存器及其地址
1.起始地址
记录
时钟控制寄存器
的起始地址为0x4002 1000
GPIOC寄存器
起始地址为0x4001 1000
2.使能寄存器
根据系统架构图,可知使能GPIO时钟需要去找APB2外设使能寄存器
使能寄存器地址+偏移地址(0x4002 1000+0x18) 左移4位 *(unsigned int*)0x40021018 |= 0x01<<4
3.配置输出模式
STM32每个端口有16个IO口。所以要分2个寄存器来操作。这2个寄存器用来选择对应的IO口,IO0—7使用低,8-15使用高。
我们这里是GPIOC13,因此选择端口配置高寄存器
配置推挽输出,最大速度10MHZ
配置相应位为0001
该寄存器地址是GPIOC寄存器地址+偏移地址(0x4001 1000+0x04)
*(unsigned int*)0x40011004 |= 0x01<<20
4.配置低电平
该寄存器地址是GPIOC寄存器地址+偏移地址(0x4001 1000+0x0C)
*(unsigned int*)0x4001100C &= ~(0x01<<13);
二、代码
需要将数字0x…强转成地址,再给地址取内容
#include "stm32f10x.h"// 不让程序报错void SystemInit(){}int main(){ // 使能GPIO时钟 *(unsigned int*)0x40021018 |= 0x01<<4; // 配置输出模式 *(unsigned int*)0x40011004 |= 0x01<<20; // 输出低电平 *(unsigned int*)0x4001100C &= ~(0x01<<13);}
三、烧录测试
把Boot0置1,使用的是STM32最小系统板的话,需要把靠近Boot0的端子拔插到1的位置。
打开烧录工具FlyMcu,使用USB转TTL工具连接串口进行烧录
STM32F103的TX为PA9,RX为PA10
注意这里选择
DTR的低电平复位,RTS高电平进Bootloader
烧写完毕后,把端子插回去,按下复位键,可以看见LED灯亮起。
配置寄存器使STM32最小系统板上的LED灯点亮
根据原理图,要使D2点亮,需要将PC13拉低,分为以下步骤:
使能GPIO的时钟
配置GPIO13为输出模式
配置GPIO13输出低电平
一、确定有关寄存器及其地址
1.起始地址
记录
时钟控制寄存器
的起始地址为0x4002 1000
GPIOC寄存器
起始地址为0x4001 1000
2.使能寄存器
根据系统架构图,可知使能GPIO时钟需要去找APB2外设使能寄存器
使能寄存器地址+偏移地址(0x4002 1000+0x18) 左移4位 *(unsigned int*)0x40021018 |= 0x01<<4
3.配置输出模式
STM32每个端口有16个IO口。所以要分2个寄存器来操作。这2个寄存器用来选择对应的IO口,IO0—7使用低,8-15使用高。
我们这里是GPIOC13,因此选择端口配置高寄存器
配置推挽输出,最大速度10MHZ
配置相应位为0001
该寄存器地址是GPIOC寄存器地址+偏移地址(0x4001 1000+0x04)
*(unsigned int*)0x40011004 |= 0x01<<20
4.配置低电平
该寄存器地址是GPIOC寄存器地址+偏移地址(0x4001 1000+0x0C)
*(unsigned int*)0x4001100C &= ~(0x01<<13);
二、代码
需要将数字0x…强转成地址,再给地址取内容
#include "stm32f10x.h"// 不让程序报错void SystemInit(){}int main(){ // 使能GPIO时钟 *(unsigned int*)0x40021018 |= 0x01<<4; // 配置输出模式 *(unsigned int*)0x40011004 |= 0x01<<20; // 输出低电平 *(unsigned int*)0x4001100C &= ~(0x01<<13);}
三、烧录测试
把Boot0置1,使用的是STM32最小系统板的话,需要把靠近Boot0的端子拔插到1的位置。
打开烧录工具FlyMcu,使用USB转TTL工具连接串口进行烧录
STM32F103的TX为PA9,RX为PA10
注意这里选择
DTR的低电平复位,RTS高电平进Bootloader
烧写完毕后,把端子插回去,按下复位键,可以看见LED灯亮起。
举报
更多回帖
rotate(-90deg);
回复
相关问答
如何利用
寄存器
在
stm32
开发
板
上
点亮
一个
LED
灯
呢
2022-01-19
958
如何通过控制
寄存器
来
点亮
LED
灯
?
2021-11-29
958
如何使用
寄存器
去
点亮
LED
灯
呢
2021-11-30
1177
如何利用
寄存器
去
点亮
LED
灯
呢
2021-11-29
1461
请问
STM32
F103C8T6
小系统
核心
板
如何
点亮
内置
LED
?
2021-12-14
1715
如何通过
配置
相应的
寄存器
来驱动
LED
灯
?
2021-06-15
904
如何用
STM32
点亮
LED
灯
?
2021-10-11
1077
STM32
F103ZE
最小系统
板
的主函数的流程是怎样的
2021-12-10
1225
stm32
f103zet6使用
寄存器
点亮
一个
LED
灯
,程序感觉没问题,却不能运行出结果
2018-05-02
7476
STM32
最小系统
是由哪些部分组成的
2021-10-18
2237
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分