完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
配置寄存器使STM32最小系统板上的LED灯点亮
根据原理图,要使D2点亮,需要将PC13拉低,分为以下步骤:
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灯亮起。 |
|
|
|
只有小组成员才能发言,加入小组>>
3310 浏览 9 评论
2991 浏览 16 评论
3492 浏览 1 评论
9057 浏览 16 评论
4086 浏览 18 评论
1176浏览 3评论
604浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
597浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2334浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1895浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 18:35 , Processed in 1.081835 second(s), Total 80, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号