用寄存器点亮灯

①查看灯引脚

由开发板的原理图可知:LED0灯对应PF9引脚。

②查看手册,存储器映射定义好对应寄存器的地址

stm32f4xx.h

cs 复制代码
#define PERIPH_BASE      ((unsigned int)0x40000000)
	
#define AHB1PERIPH_BASE  (PERIPH_BASE + 0x00020000)

#define GPIOF_BASE       (AHB1PERIPH_BASE + 0x1400)
#define GPIOF_MODER 	 *(unsigned int*)(GPIOF_BASE+0x00)
#define GPIOF_OTYPER   *(unsigned int*)(GPIOF_BASE+0x04)
#define GPIOF_OSPEEDR *(unsigned int*)(GPIOF_BASE+0x08)
#define GPIOF_PUPDR *(unsigned int*)(GPIOF_BASE+0x0C)
#define GPIOF_IDR *(unsigned int*)(GPIOF_BASE+0x10)
#define GPIOF_ODR *(unsigned int*)(GPIOF_BASE+0x14)
#define GPIOF_BSRR 		 *(unsigned int*)(GPIOF_BASE+0x18)
#define GPIOF_LCKR *(unsigned int*)(GPIOF_BASE+0x1C)
#define GPIOF_AFRL *(unsigned int*)(GPIOF_BASE+0x20)
#define GPIOF_AFRH *(unsigned int*)(GPIOF_BASE+0x24)
	
#define RCC_BASE 		(AHB1PERIPH_BASE + 0x3800)
#define RCC_AHB1ENR 	*(unsigned int*)(RCC_BASE+0x30)

	

③防止编译报错

在main文件里,定义空白函数,骗过编译器不报错。

④查看相关手册,定义引脚

(1)使能GPIOF时钟

(2)将PF9引脚定义成通用输出模式

可知:MODER9设置01

(3)将PF9设置成输出推挽模式

(4)设置高速输出

(5)PF9设置上拉

(上下拉模式不影响引脚电平变化,但上拉能小幅提高电流输出能力)

(6)设置电平

查看原理图可知设置低电平灯亮

初始化:

循环:

⑤代码

main.c

cs 复制代码
#include "stm32f4xx.h"


void SystemInit(void)
{
	
}

/*******************************************************************************
* 函 数 名         : main
* 函数功能		   : 主函数
* 输    入         : 无
* 输    出         : 无
*******************************************************************************/

int main()
{
	RCC_AHB1ENR |= (1<<5);
	GPIOF_MODER &= ~(0x03<<9*2);
	GPIOF_MODER |= (1<<9*2);
	GPIOF_OTYPER &= ~(1<<9);
	GPIOF_OTYPER |= (0<<9);
	GPIOF_OSPEEDR &= ~(0x03<<9*2);
	GPIOF_OSPEEDR |= (0x03<<9*2);
	GPIOF_PUPDR &= ~ (0x03<<9*2);
	GPIOF_PUPDR |= (0x01<<9*2);
	GPIOF_BSRR &= ~(1<<(16+9));
	GPIOF_BSRR &= ~(1<<(9));
	while(1)
	{
		//点亮LED0灯,PF9
		GPIOF_BSRR |= (1<<(16+9));
		
	}
}
相关推荐
小程序设计11 小时前
本科毕设避坑|大数据 / 单片机物联网 / 网络工程 / PLC / 机械设计选题与落地心得
java·hive·hadoop·单片机
Zwawa17 小时前
把按键和 LED 状态显示出来:第一次看见程序到底在干什么
单片机·嵌入式
小程序设计17 小时前
基于STM32的办公室智能空气净化系统设计
stm32·单片机
不悔哥6 天前
开源OV-Watch:怎么做一个智能手表
单片机·开源·嵌入式
XiHongShi20166 天前
STM32F407 RTC定时器例程,建议保存
stm32·单片机·学习
深圳老胡6 天前
STM32F407 控制 L6470 步进电机驱动 —— 控制过程简介
笔记·stm32·单片机·嵌入式硬件·代码规范
女神下凡6 天前
嵌入式设计的各种存储芯片的硬件/软件设计规范,非常全面。
arm开发·单片机·嵌入式硬件
梅梅9666 天前
一款mipi转lvds的lcd调试(LT8912B)
单片机·计算机外设·电脑·显示器·pd芯片
开发笔记-阿牛6 天前
蓝牙音乐灯拆解,又一次拆到蓝牙音乐灯芯片CK6865L
人工智能·单片机·嵌入式硬件·音视频·音频
从零开始的嵌入式之旅6 天前
day47
arm开发·经验分享·笔记·嵌入式硬件