## STM32——点灯

STM32——点灯

单片机的点灯就相当于学习C语言的Hello World了,这也是每一个初学者的必经路程,也并没有我们想象的那么难,我们要相信自己。毕竟书山有路勤为径,学海无涯苦做舟。
——至每一个为自己的理想而奋斗的青少年

简单介绍下开发环境,芯片类型是STM32F103VET6,集成开发环境用的是keil5 MDK-ARM,仿真器使用JLINK。

要想成功点灯,首先我们需要确定引脚,我是用的单片机是PB0,PB1,PB5 这三个引脚。在程序中我们只要选择其中一个引脚就行了,这里我们使用的是PB0,GPIO_PIN_1,将引脚设置为输出模式,并控制他的高低电平。这里我们先进行初始化设置:

	//使能(打开)端口B的硬件时钟,就是对端口B供电
	RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);


	//初始化GPIO引脚
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;		//第1根引脚
	GPIO_InitStructure.GPIO_Mode= GPIO_Mode_OUT;	//输出模式
	GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;	//推挽输出,增加输出电流能力。
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//高速响应
	GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;	//没有使能上下拉电阻

	GPIO_Init(GPIOB,&GPIO_InitStructure);

再控制单片机的高低电平,代码如下:

		//PB1引脚输出高电平
		GPIO_SetBits(GPIOB,GPIO_Pin_1);
		
		delay();
		
		//PB1引脚输出低电平
		GPIO_ResetBits(GPIOB,GPIO_Pin_1);
	
		delay();

这里我们使用到了一个delay延时函数,代码如下:

void delay(void)
{
	uint32_t i=0x8000000;
	
	while(i--);
}

最后总的代码如下:

 #include "stm32f10x.h"

static GPIO_InitTypeDef GPIO_InitStructure;

void delay(void)
{
	uint32_t i=0x8000000;
	
	while(i--);
}

int main(void)
{
	//使能(打开)端口B的硬件时钟,就是对端口B供电
	RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);


	//初始化GPIO引脚
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;		//第1根引脚
	GPIO_InitStructure.GPIO_Mode= GPIO_Mode_OUT;	//输出模式
//	GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;	//推挽输出,增加输出电流能力。
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//高速响应
//	GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;	//没有使能上下拉电阻

	GPIO_Init(GPIOB,&GPIO_InitStructure);
		
	while(1)
	{
		//PB1引脚输出高电平
		GPIO_SetBits(GPIOB,GPIO_Pin_1);
		
		delay();
		
		//PB1引脚输出低电平
		GPIO_ResetBits(GPIOB,GPIO_Pin_1);
		
		delay();	
	}
}

至此,这个点灯程序就已经完成了,还是很简单的,在学习的时候确实有时候会挺枯燥的,但是我们相信自己,坚持就是胜利。加油哦~

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值