野火stm32指南者开发板点亮LED

这篇具有很好参考价值的文章主要介绍了野火stm32指南者开发板点亮LED。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录
  • 1.芯片手册中的LED电路图
  • 2.官网手册
  • 3.代码演示
    • 3.1 stm32f10x.h头文件
    • 3.2 点亮绿灯
    • 3.3 点亮蓝灯
    • 3.4 点亮红灯
    • 3.5 LED灯闪烁,绿灯闪烁 。
    • 3.6 红绿蓝三色LED灯切换闪烁

1.芯片手册中的LED电路图

野火stm32指南者开发板点亮LED

2.官网手册

野火stm32指南者开发板点亮LED
野火stm32指南者开发板点亮LED文章来源地址https://www.toymoban.com/news/detail-642006.html

3.代码演示

3.1 stm32f10x.h头文件

#ifndef _STM32F10X_H
#define _STM32F10X_H


/*片上外设基地址 */
#define PERIPH_BASE ((unsigned int)0x40000000)
// APB1 总线基地址
#define APB1PERIPH_BASE PERIPH_BASE
// APB2 总线基地址
#define APB2PERIPH_BASE (PERIPH_BASE + 0x10000)
// AHB 总线基地址
#define AHBPERIPH_BASE (PERIPH_BASE + 0x20000)


/* GPIOB */
#define GPIOB_BASE (APB2PERIPH_BASE + 0x0C00)
// 端口配置低寄存器 PB0-PB7 配置是输入还是输出
#define GPIOB_CRL			*(unsigned int*)(GPIOB_BASE+0x00)
	// 端口配置高寄存器 PB8-PB15 配置是输入还是输出 
#define GPIOB_CRH			*(unsigned int*)(GPIOB_BASE+0x04)
#define GPIOB_IDR			*(unsigned int*)(GPIOB_BASE+0x08)
// 端口输出数据寄存器 配置PB0-PB15是高电平还是低电平
#define GPIOB_ODR			*(unsigned int*)(GPIOB_BASE+0x0C)
#define GPIOB_BSRR	  *(unsigned int*)(GPIOB_BASE+0x10)
#define GPIOB_BRR			*(unsigned int*)(GPIOB_BASE+0x14)
#define GPIOB_LCKR		*(unsigned int*)(GPIOB_BASE+0x18)

/* 时钟端口 */
#define RCC_BASE (AHBPERIPH_BASE + 0x1000)
// GPIOB所在的时钟端口
#define RCC_APB2ENR  (*(unsigned int *)(RCC_BASE + 0X18))


#endif

3.2 点亮绿灯

#include "stm32f10x.h"

void SystemInit(void){

}

int main(void){
	
	// 打开 GPIOB 端口的时钟
	RCC_APB2ENR  |=  ( (1) << 3 );
	
	// 配置IO口为推挽输出,这里将图2中的CNF0和MODE0都置0
	GPIOB_CRL &=  ~( (0x0f) << (4*0) );
	// 这里将图2中的MODE0变成01
	GPIOB_CRL |=  ( (1) << (4*0) );
	
	// 控制 ODR 寄存器,这行代码省略也可以使灯亮,这里将图3中的ODR0置0
	GPIOB_ODR &= ~(1<<0);
	while(1);
}

3.3 点亮蓝灯

#include "stm32f10x.h"

void SystemInit(void){

}

int main(void){
	
	// 打开 GPIOB 端口的时钟
	RCC_APB2ENR  |=  ( (1) << 3 );
	
	// 配置IO口为推挽输出,这里将图2中的CNF1和MODE1都置0
	GPIOB_CRL &=  ~( (0x0f) << (4*1) );
	// 这里将图2中的MODE1变成01
	GPIOB_CRL |=  ( (1) << (4*1) );
	
	// 控制 ODR 寄存器,这行代码省略也可以使灯亮,这里将图3中的ODR1置0
	GPIOB_ODR &= ~(1<<0);
	while(1);
}

3.4 点亮红灯

#include "stm32f10x.h"

void SystemInit(void){

}

int main(void){
	
	// 打开 GPIOB 端口的时钟
	RCC_APB2ENR  |=  ( (1) << 3 );
	
	// 配置IO口为推挽输出,这里将图2中的CNF5和MODE5都置0
	GPIOB_CRL &=  ~( (0x0f) << (4*1) );
	// 这里将图2中的MODE5变成01
	GPIOB_CRL |=  ( (1) << (4*1) );
	
	// 控制 ODR 寄存器,这行代码省略也可以使灯亮,这里将图3中的ODR5置0
	GPIOB_ODR &= ~(1<<0);
	while(1);
}

3.5 LED灯闪烁,绿灯闪烁 。

#include "stm32f10x.h"

typedef unsigned int uns32_t;

void SystemInit(void){

}

void delay(uns32_t count)
{
	for( ; count !=0; count-- );
}


int main(void){
	
	// 打开 GPIOB 端口的时钟
	RCC_APB2ENR  |=  ( (1) << 3 );
	
	// 配置IO口为输出
	GPIOB_CRL &=  ~( (0x0f) << (4*0) );
	GPIOB_CRL |=  ( (1) << (4*0) );
	
	// 控制 ODR 寄存器
	GPIOB_ODR &= ~(1<<0);
	  while(1){
		GPIOB_ODR &= ~(1<<0);
		delay(0xFFFFF);
		GPIOB_ODR |= (1<<0);
		delay(0xFFFFF);
	}
	
}

3.6 红绿蓝三色LED灯切换闪烁

#include "stm32f10x.h"

// 绿灯对应的是PB0
#define GREEN_LED (0)
// 蓝灯对应的是PB1
#define BLUE_LED (1)
// 红灯对应的是PB5
#define RED_LED (5)

typedef unsigned int uns32_t;

void open_port(int n){
	/* 配置端口输出,PBn 0100 -> 0011  */
	// MODEn[1:0]:00 -> 11
	GPIOB_CRL |=  ( 3 << (4*n) );
	// CNFn[1:0]:01 -> 00
	GPIOB_CRL &=  ~( 3 << (4*n+2) );
}

void close_port(int n){
	/* 复位端口,PBn 0011 -> 0100  */
	// MODEn[1:0]:00 -> 11
	GPIOB_CRL &=  ~( 3 << (4*n) );
	// CNFn[1:0]:01 -> 00
	GPIOB_CRL |=  ( 1 << (4*n+2) );
}

void SystemInit(void){

}

void delay(uns32_t count)
{
	for( ; count !=0; count-- );
}

void blue(){
	// 绿灯关
	close_port(GREEN_LED);
	
	// 蓝灯开
	open_port(BLUE_LED);
}

void green(){
	// 红灯关
	close_port(RED_LED);
	
	// 绿灯
	open_port(GREEN_LED);
}

void red(){
	
	// 蓝灯关
	close_port(BLUE_LED);
	
	// 红灯开
	open_port(RED_LED);
}

int main(void){
	
	/* 打开 GPIOB 端口的时钟 */
	RCC_APB2ENR  |=  ( (1) << 3 );
	
	/* 配置端口输出,PB5 0100 -> 0011 ,这里配置的是红灯开 */
	// MODE5[1:0]:00 -> 11
	GPIOB_CRL |=  ( 3 << (4*5) );
	// CNF5[1:0]:01 -> 00
	GPIOB_CRL &=  ~( 3 << (4*5+2) );
	
	while(1){
		delay(0xfffff);
		green();
		delay(0xfffff);
		blue();
		delay(0xfffff);
		red();
	}
	
}

到了这里,关于野火stm32指南者开发板点亮LED的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 2、STM32点亮LED灯

    1、新建工程,新建一个目录存放以后所有的工程stmproject,在这个目录下新建文件夹寄存器点灯,文件名为LED。 接下来选择所用的软件包,之前安装软件时安装的,选择对应型号即可。 如果需要安装别的安装包可以在这个网址下载。点击打开文件 点击next,再点击finish就安装

    2024年02月01日
    浏览(43)
  • STM32点亮LED的三种方法

    学习STM32的第一课,都是点亮LED。 芯片:STM32F107RC 系统时钟:72MHz LED引脚:板载引脚PD2,正极接3.3V,负极接PD2,低电平点亮 解释: 1.第1句:RCC-APB2ENR寄存器的位[5]设为1,表示GPIOD时钟使能。类似的还有位[2]表示GPIOA,位[3]表示GPIOB,位[4]表示GPIOC,设为1表示使能,设为0表示失

    2024年02月14日
    浏览(34)
  • 最详细STM32,cubeMX 点亮 led

    这篇文章将详细介绍 如何在 stm32103 板子上点亮一个LED. 实验开发板:STM32F103C8T6。 所需软件:keil5 , cubeMX 。 实验目的:了解 led 点亮原理,cubeMX配置 , GPIO 等相关函数 。 代码编写软件 : MDK keil5 。 图形化配置软件 :STM32cubeMX。 仿真器驱动 : STLINK 。 串口驱动 :CH340 。

    2024年01月16日
    浏览(44)
  • STM32固件库编程-----点亮led小灯

    第一步:打开keil5,创建工程文件 第二步:选择自己想要的路径(温馨提示,最好不要创建在C盘里面)然后点击保存 第三步:因为我们是使用STM32单片机所以选择Software Packs 因为我们使用的是stm32F1系列的芯片所以要选择如下 STM32F1系列有多种芯片,所以我们可以根据自己手上

    2024年02月06日
    浏览(41)
  • STM32寄存器点亮LED灯

     这个灯是 PB5引脚 看原理图可以看出 让GPIOB5输出低电平 就能点亮 那么我们得让 打开控制GPIOB5的时钟 让GPIOB5 输出模式 让GPIOB5低电平 时钟就相当于一个阀门开关,或者理解成水龙头,你打开了 才有水出来,也就是你打开才能工作。 看中文参考手册 系统架构 找到你的GPIO

    2024年02月07日
    浏览(49)
  • STM32——震动传感器点亮LED灯

    若产品不震动,模块上的 DO 口输出高电平; 若产品震动,模块上的 DO 口输出低电平,D0-LED绿色指示灯亮。 需求:当震动传感器接收到震动信号时,使用中断的方式点亮led1。 1、打开cubeMX a.在SYS中选择调试方式为串行线调试。 b.在RCC(复位和时钟控制)中选择 HSE(高速时钟)

    2024年02月04日
    浏览(41)
  • 【STM32】STM32CubeMX教程一--基本使用(新建工程点亮LED灯)

    前言 在配置好CubeMX之后,就是新建工程的开始了,那么首先我们需要一些准备,本片博客我们会很详细的介绍STM32CubeMX的基本使用和如何创建一个新的工程并且点亮LED灯 在新建工程时,我们分为了具体流程1~7,如果您不想看每部分的讲解,直接按照流程操作即可,5分钟即可

    2024年02月09日
    浏览(50)
  • GPIO(STM32)点亮LED灯、按键KEY

    GPIO(general porpose intputoutput):通用输入输出端口的简称。可以通过软件控制其输出和输入。stm32芯片的GPIO引脚与外部设备连接起来,从而实现与外部通信,控制以及数据采集的功能。 在STM32F4xx芯片上的GPIO口被分成各个组,一共有7组IO口,以A、B、C、D、E、F、G等命名(不同

    2024年04月14日
    浏览(41)
  • (4)STM32的SPI协议及LED点亮

    2024年02月11日
    浏览(40)
  • STM32/51单片机编程入门(点亮LED)

    目录 一、Proteus电路仿真软件上的C51程序设计及仿真 1.原理图绘制 2.Keil5上的51程序编写 3.仿真 二、安装mdk5软件和stm32包,完成一个stm32的简单程序 1.mdk5软件中编写程序 2.stm32仿真程序调试 三、STM32F103系列芯片的地址映射和寄存器映射原理,GPIO端口的初始化设置的一般步骤

    2024年02月02日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包