基于外设库的流水灯及通过keil观察GPIO输出波形

基于外设库的流水灯及通过keil观察GPIO输出波形

(1)标准外设库的下载及使用

下载:https://www.st.com/zh/embedded-software/stm32-standard-peripheral-libraries.html

下载后将相关文件添加到工程里:

鼠标右键点击Target,添加Group,然后再左键点击New Group两次,重命名,如user。

在这里插入图片描述

右键点击user,点击Add Existing Files to Group,找到安装的固件库位置,如下图,

在这里插入图片描述

找到以下文件,添加到user里
在这里插入图片描述

同理,创建其他组进行添加,如下图
在这里插入图片描述

此时由于文件太多,在对应文件夹里可通过一直按ctrl,鼠标点击对应文件,可一次性将对应文件添加进Group里。
在这里插入图片描述

然后点击魔术棒,找到c/c++板块,在该板块下找到Include Paths,点击旁边的省略号。

在这里插入图片描述

然后点击出现窗口里红色x旁边的类似截屏的方框,点击出现的一行空格旁的省略号,将固件库的文件夹位置找到,添加

在这里插入图片描述

(2)外设库方式流水灯

延时文件:

#include "stm32f10x.h"

/**
  * @brief  微秒级延时
  * @param  xus 延时时长,范围:0~233015
  * @retval 无
  */
void Delay_us(uint32_t xus)
{
	SysTick->LOAD = 72 * xus;				//设置定时器重装值
	SysTick->VAL = 0x00;					//清空当前计数值
	SysTick->CTRL = 0x00000005;				//设置时钟源为HCLK,启动定时器
	while(!(SysTick->CTRL & 0x00010000));	//等待计数到0
	SysTick->CTRL = 0x00000004;				//关闭定时器
}

/**
  * @brief  毫秒级延时
  * @param  xms 延时时长,范围:0~4294967295
  * @retval 无
  */
void Delay_ms(uint32_t xms)
{
	while(xms--)
	{
		Delay_us(1000);
	}
}
 
/**
  * @brief  秒级延时
  * @param  xs 延时时长,范围:0~4294967295
  * @retval 无
  */
void Delay_s(uint32_t xs)
{
	while(xs--)
	{
		Delay_ms(1000);
	}
} 

对应LED文件:

#include "stm32f10x.h"
#include "Delay.h"
void LED(void)
{		
		GPIO_InitTypeDef GPIO_InitStructure;  //定义一个GPIO_InitTypeDef类型的结构体
		RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB, ENABLE);  //开启LED相关的GPIO外设时钟
		GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2;  //选择控制的GPIO引脚		
		GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  //设置引脚模式为通用推挽输出
		GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  //设置引脚速率为50MHz  
		GPIO_Init(GPIOB, &GPIO_InitStructure);	 //调用库函数,初始化GPIO
		while(1)
		{
			GPIO_Write(GPIOB, ~0x0001);
			Delay_ms(1000);
			GPIO_Write(GPIOB, ~0x0002);
			Delay_ms(1000);
			GPIO_Write(GPIOB, ~0x0004);
			Delay_ms(1000);
		}
}

(3)示波器观察

点击Debug,点击示波器,出现下图界面

在这里插入图片描述

点击setup,同样点击方框,然后直接输入GPIOx_IDRy[x,y分别为对应端口和对应引脚,如输入GPIOB_IDR0,则在IDR后出现&0x00000001(即引脚0对应地址)],然后选择type为bit。
在这里插入图片描述

然后点击run,运行。

在这里插入图片描述

结果如下:

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值