STM32F429 >> 1. LED_RGB

发布者:德州小孙最新更新时间:2019-08-28 来源: eefocus关键字:STM32F429  LED  RGB 手机看文章 扫描二维码
随时随地手机看文章

本文代码在GitHub 上有:

https://github.com/Waao666/STM32-1.-LED_RGB


在这里插入图片描述

stm32f4xx.h

//外设寄存器

#define PERIPH_BASE         ((unsigned int)0x40000000)

//总线寄存器

#define APB1PERIPH_BASE     PERIPH_BASE

#define APB2PERIPH_BASE     (PERIPH_BASE + 0x00010000)

#define AHB1PERIPH_BASE     (PERIPH_BASE + 0x00020000)

#define AHB2PERIPH_BASE     (PERIPH_BASE + 0x10000000)


//GPIO 寄存器

#define GPIOA_BASE          AHB1PERIPH_BASE

#define GPIOB_BASE          (AHB1PERIPH_BASE + 0x00000400)

#define GPIOC_BASE          (AHB1PERIPH_BASE + 0x00000800)

#define GPIOD_BASE          (AHB1PERIPH_BASE + 0x00000C00)

#define GPIOE_BASE          (AHB1PERIPH_BASE + 0x00001000)

#define GPIOF_BASE          (AHB1PERIPH_BASE + 0x00001400)

#define GPIOG_BASE          (AHB1PERIPH_BASE + 0x00001800)

#define GPIOH_BASE          (AHB1PERIPH_BASE + 0x00001C00)

#define GPIOI_BASE          (AHB1PERIPH_BASE + 0x00002000)

//复位和时钟控制

#define RCC_BASE            (AHB1PERIPH_BASE + 0x00003800)


//外设时钟使能寄存器

#define RCC_AHB1ENR         *((unsigned int *)(RCC_BASE + 0X30))


//GPIO 模块寄存器

#define GPIOH_MODER         *(unsigned int*)GPIOH_BASE

#define GPIOH_OTYPER        *(unsigned int*)(GPIOH_BASE + 0x04)

#define GPIOH_OSPEEDR       *(unsigned int*)(GPIOH_BASE + 0x08)

#define GPIOH_PUPDR         *(unsigned int*)(GPIOH_BASE + 0x0C)

#define GPIOH_IDR           *(unsigned int*)(GPIOH_BASE + 0x10)

#define GPIOH_ODR           *(unsigned int*)(GPIOH_BASE + 0x14)

//端口置位/复位寄存器

#define GPIOH_BSRR          *(unsigned int*)(GPIOH_BASE + 0x18)

#define GPIOH_LCKR          *(unsigned int*)(GPIOH_BASE + 0x1C)

#define GPIOH_AFRL          *(unsigned int*)(GPIOH_BASE + 0x20)

#define GPIOH_AFRH          *(unsigned int*)(GPIOH_BASE + 0x20)


main.c

#include "stm32f4xx.h" 


int main(void)

{

RCC_AHB1ENR |= (1<<7);

GPIOH_MODER  &= ~( 0x03<< (2*10));

/*PH10 MODER10 = 01b 输出模式*/

GPIOH_MODER |= (1<<2*10);

/*GPIOH OTYPER10清空*/

GPIOH_OTYPER &= ~(1<<1*10);

/*PH10 OTYPER10 = 0b 推挽模式*/

GPIOH_OTYPER |= (0<<1*10);

/*GPIOH OSPEEDR10清空*/

GPIOH_OSPEEDR &= ~(0x03<<2*10);

/*PH10 OSPEEDR10 = 0b 速率2MHz*/

GPIOH_OSPEEDR |= (0<<2*10);

/*GPIOH PUPDR10清空*/

GPIOH_PUPDR &= ~(0x03<<2*10);

/*PH10 PUPDR10 = 01b 上拉模式*/

GPIOH_PUPDR |= (1<<2*10);

/*PH10 BSRR寄存器的 BR10置1,使引脚输出低电平*/

GPIOH_BSRR |= (1<<16<<10);

while(1);

}


void SystemInit(void)

{

}


关键字:STM32F429  LED  RGB 引用地址:STM32F429 >> 1. LED_RGB

上一篇:STM32F429 >> 20. CAN 通讯(二)
下一篇:STM32F429 >> 14. TIM_(二)_高级定时器 (Code)

小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved