STM32点灯闪烁

stm32c8t6引脚图

开发板引脚图

GPIO端口的每个位可以由软件分别配置成 多种模式。

─ 输入浮空

─ 输入上拉

─ 输入下拉

─ 模拟输入

─ 开漏输出

─ 推挽式输出

─ 推挽式复用功能

─ 开漏复用功能

配置GPIO端口步骤:开启时钟->使用结构体设置输出模式、引脚、速度->初始化GPIO。

    //开启时钟GPIOC
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);
	//定义结构体变量
	GPIO_InitTypeDef GPIO_InitStructuer;
	//设置GPIO模式,推挽输出模式
	GPIO_InitStructuer.GPIO_Mode = GPIO_Mode_Out_PP;
	//设置GPIO引脚
	GPIO_InitStructuer.GPIO_Pin = GPIO_Pin_13;
	//设置GPIO速度
	GPIO_InitStructuer.GPIO_Speed = GPIO_Speed_50MHz;
	//传入结构体,初始化GPIO
	GPIO_Init(GPIOC,&GPIO_InitStructuer);

在stm32f10x_gpio.h文件中可以看到,读、写、初始GPIO函数有

void GPIO_DeInit(GPIO_TypeDef* GPIOx);
void GPIO_AFIODeInit(void);
void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);
void GPIO_StructInit(GPIO_InitTypeDef* GPIO_InitStruct);
uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
uint16_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx);
uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
uint16_t GPIO_ReadOutputData(GPIO_TypeDef* GPIOx);
void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal);
void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal);

这样就可以实现点灯闪烁操作了

#include "stm32f10x.h"                  // Device header
#include "Delay.h" 

int main()
{
	//开启时钟GPIOC
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);
	//定义结构体变量
	GPIO_InitTypeDef GPIO_InitStructuer;
	//设置GPIO模式,推挽输出模式
	GPIO_InitStructuer.GPIO_Mode = GPIO_Mode_Out_PP;
	//设置GPIO引脚
	GPIO_InitStructuer.GPIO_Pin = GPIO_Pin_13;
	//设置GPIO速度
	GPIO_InitStructuer.GPIO_Speed = GPIO_Speed_50MHz;
	//传入结构体,初始化GPIO
	GPIO_Init(GPIOC,&GPIO_InitStructuer);
	//设置PC13为低电平
	//GPIO_ResetBits(GPIOC,GPIO_Pin_13);
	//设置PC13为高电平
	//GPIO_SetBits(GPIOC,GPIO_Pin_13);
	while(1)
	{
		//设置PC13为低电平
		GPIO_WriteBit(GPIOC,GPIO_Pin_13,Bit_SET);
		Delay_ms(500);
		//设置PC13为高电平
		GPIO_WriteBit(GPIOC,GPIO_Pin_13,Bit_RESET);
		Delay_ms(500);
	}	
	
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值