STM32_GPIO使用
  pbfHt7yP3Hym 2023年11月02日 51 0

GPIO的使用:

1;开启相关GPIO的时钟

2;初始化相关GPIO的配置,IO引脚的模式,引脚选择,输出速率

3;查看相关硬件,看是高电平驱动外设,还是低电平;

程序:

初始化函数:

#include "rgb_drive.h"

void rgb_init(void)

{ GPIO_InitTypeDef RGB_GPIO_InitStruct; //GPIO结构体名称

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);//开启GPIOB的时钟

RGB_GPIO_InitStruct.GPIO_Mode= GPIO_Mode_Out_PP;//GPIO模式选择 
#if (R_LED==1)//条件编译
RGB_GPIO_InitStruct.GPIO_Pin|= GPIO_Pin_0; //GPIO引脚选择可用|运算符同时选择多个,但为了灯的选择分开了。 
#endif
#if (G_LED==1)
RGB_GPIO_InitStruct.GPIO_Pin|= GPIO_Pin_1;
#endif
#if (B_LED==1)
RGB_GPIO_InitStruct.GPIO_Pin|= GPIO_Pin_5;
#endif
//输出速度选择,同样用宏去选择
	#if LED_OUT_SPEED==10
	RGB_GPIO_InitStruct.GPIO_Speed=GPIO_Speed_10MHz;
	#elif LED_OUT_SPEED==2
	RGB_GPIO_InitStruct.GPIO_Speed=GPIO_Speed_2MHz;
	#elif LED_OUT_SPEED==50
	RGB_GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
	#endif
GPIO_Init(GPIOB, &RGB_GPIO_InitStruct);//gpio初始化完成
	//这里也能初始化是输出高电平还是低电平

}

头文件的声明;

#ifndef rgb_drive_h

#define rgb_drive_h

#include "define.h"//公共头文件

#define R_LED 1 #define G_LED 1 #define B_LED 1

#define LED_OUT_SPEED 50

#define LED_R_ON GPIO_ResetBits(GPIOB, GPIO_Pin_5);

#define LED_R_OFF GPIO_SetBits(GPIOB, GPIO_Pin_5);

#define LED_G_ON GPIO_ResetBits(GPIOB, GPIO_Pin_0);

#define LED_G_OFF GPIO_SetBits(GPIOB, GPIO_Pin_0);

#define LED_B_ON GPIO_ResetBits(GPIOB, GPIO_Pin_1);

#define LED_B_OFF GPIO_SetBits(GPIOB, GPIO_Pin_1);

void rgb_init(void);

#endif

STM标准库提供的输出高低电平函数;

GPIO_ResetBits(GPIOB, GPIO_Pin_1);//输出低

GPIO_SetBits(GPIOB, GPIO_Pin_1);//输出高

还有一些批量读出 批量输出的函数

main函数使用

#include "define.h"               // Device header

int main(void)

{

rgb_init();//初始化

while(1)

{

 LED_B_ON;

 LED_R_OFF;

 LED_G_OFF;

}

}

到此就能使用GPIO点灯了呀。



【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  tprTMCWDkFAR   2023年12月07日   31   0   0 头文件#include初始化
  UYSNSBVoGd8R   2023年12月08日   26   0   0 引脚#include#define
pbfHt7yP3Hym