用寄存器点亮灯

①查看灯引脚

由开发板的原理图可知: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));
		
	}
}
相关推荐
蝎蟹居6 分钟前
GBT 4706.1-2024逐句解读系列(31) 第7.21.1条款:说明书怎么写符合标准要求
人工智能·单片机·嵌入式硬件·物联网·安全
hongmai66688813 分钟前
乐鑫ESP32-C61-WROOM-1模组:Wi-Fi 6与蓝牙LE双模的RISC-V新选择
单片机·嵌入式硬件·risc-v
电气_空空15 分钟前
基于 LabVIEW的数据采集与信号处理系统的设计
嵌入式硬件·毕业设计·信号处理·labview
茉莉玫瑰花茶15 小时前
Windows 平台下的 UDP 客户端
stm32·单片机·嵌入式硬件
磨十三17 小时前
U-Boot
arm开发·嵌入式硬件
笔夏17 小时前
【移芯平台CAT1模组】烧写固件
stm32·单片机·学习
无垠的广袤18 小时前
【RA-Eco-RA4M2开发板】步进电机的串口控制和 LabVIEW 数据采集
单片机·嵌入式硬件·labview
茯苓gao19 小时前
嵌入式开发笔记:QSerialPort 完整使用指南——从基础 API 到工程实战
笔记·嵌入式硬件·qt·学习
wuyk55519 小时前
67.嵌入式C语言进阶:结构体指针实战指南——STM32外设、传感器数据访问的高效技巧
c语言·开发语言·stm32·单片机
Mr+范19 小时前
单片机 ADC 电压与电流检测及电阻选型指南
单片机·嵌入式硬件