当前位置: 首页 > news >正文

【1】野火STM32F103VET6开发板入门笔记之点亮RGB

硬件介绍

提示:本文是基于野火STM32F103指南者开发板所写例程,其他开发板请自行移植到自己的工程项目当中即可。

RGB-LEDPin引脚:低电平-点亮,高电平-熄灭
REDPB5
GREENPB0
BLUEPB1

硬件原理图


文章目录

  • 硬件介绍
  • 软件介绍:结构体方式
  • 软件介绍:宏定义方式


软件介绍:结构体方式

bsp_rgb.h 文件下的代码如下(示例):

#ifndef __BSP_RGB_H
#define __BSP_RGB_H#include "stm32f10x.h"
#include "stdint.h" //定义一个RGB_GPIO_TypeDef类型的结构体,为了方便移植修改,将需要经常修改的参数放到结构体当中
typedef struct 
{uint32_t 		RCC_APB2Periph;	//APB2总线时钟GPIO_TypeDef* 	GPIOx;			//GPIO_PORTuint16_t 		GPIO_Pin;		//GPIO_PIN
}RGB_GPIO_TypeDef;					//定义一个结构体数组并对其进行初始化
static RGB_GPIO_TypeDef RGB_GPIO_List[]=
{{RCC_APB2Periph_GPIOB, GPIOB, GPIO_Pin_5},{RCC_APB2Periph_GPIOB, GPIOB, GPIO_Pin_0},{RCC_APB2Periph_GPIOB, GPIOB, GPIO_Pin_1},
};//计算结构体数组中结构体的个数
#define RGB_NUM_MAX (sizeof(RGB_GPIO_List)/sizeof(RGB_GPIO_List[0])) typedef enum
{ GPIO_RGB_RED = 0,GPIO_RGB_GREEN, GPIO_RGB_BLUE
}RGB;void RGB_Init(void);
void TurnOnLed(uint8_t LedNum);
void TurnOffLed(uint8_t LedNum);
void ToggleLed(uint8_t LedNum);#endif /* __BSP_RGB_H */

bsp_rgb.c 文件下的代码如下(示例):

#include "bsp_rgb.h"void RGB_Init(void)
{uint8_t i = 0;GPIO_InitTypeDef GPIO_InitStructure;for(i = 0;i < RGB_NUM_MAX;i++){RCC_APB2PeriphClockCmd(RGB_GPIO_List[i].RCC_APB2Periph,ENABLE);GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Pin = RGB_GPIO_List[i].GPIO_Pin;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(RGB_GPIO_List[i].GPIOx, &GPIO_InitStructure);//初始化RGB上电状态,熄灭GPIO_SetBits(RGB_GPIO_List[i].GPIOx,RGB_GPIO_List[i].GPIO_Pin);}	
}void TurnOnLed(uint8_t LedNum)
{if(LedNum >= RGB_NUM_MAX)return;elseGPIO_ResetBits(RGB_GPIO_List[LedNum].GPIOx,RGB_GPIO_List[LedNum].GPIO_Pin);
}void TurnOffLed(uint8_t LedNum)
{if(LedNum >= RGB_NUM_MAX)return;elseGPIO_SetBits(RGB_GPIO_List[LedNum].GPIOx,RGB_GPIO_List[LedNum].GPIO_Pin);
}void ToggleLed(uint8_t LedNum)
{if(LedNum >= RGB_NUM_MAX)return;else{if(GPIO_ReadOutputDataBit(RGB_GPIO_List[LedNum].GPIOx,RGB_GPIO_List[LedNum].GPIO_Pin) == 1)GPIO_ResetBits(RGB_GPIO_List[LedNum].GPIOx,RGB_GPIO_List[LedNum].GPIO_Pin);elseGPIO_SetBits(RGB_GPIO_List[LedNum].GPIOx,RGB_GPIO_List[LedNum].GPIO_Pin);}	
}

软件介绍:宏定义方式

bsp_rgb.h 文件下的代码如下(示例):

ssl._create_default_https_context = ssl._create_unverified_context

http://www.mrgr.cn/news/40902.html

相关文章:

  • express,MySQL 实现登录接口,如果用户未注册直接注册
  • 黑马linux笔记(转载)
  • 信息安全工程师(28)机房安全分析与防护
  • 深度学习:DCGAN
  • 什么是信息增益比
  • 【有啥问啥】AI中的数据融合(Data Fusion):让数据“1+1>2”
  • 前端开发技术框架选型
  • 斐波那契数列
  • 第七篇:重定向和管道相关知识总结
  • vite 构建运行自定义脚本
  • 时序必读论文14|VLDB24 TFB:全面且公平的时间序列预测方法框架
  • 预处理详解
  • OpenGL ES 之EGL(6)
  • 对于基础汇编的趣味认识
  • 【四】Spring Cloud OpenFeign原理分析
  • 【Linux】进程概念-2
  • 给Windows系统设置代理的操作方法
  • 人工智能发展历程
  • Qt界面优化——绘图API
  • 产品经理的学习