STM32基于标准外设库的LED流水灯以及keil中示波器的使用

本文主要讲述如何用库函数的方式实现流水灯,以及在keil软件中用示波器观测端口的波形

库函数方法实现流水灯

硬件连线方式跟上一篇 文章的一样
keil新建工程后将以下四个函数加到工程里,并添加路径
在这里插入图片描述
在这里插入图片描述

使能A时钟

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);

用GPIO_Init函数进行初始化

	GPIO_InitTypeDef GPIO_InitStructure;//这一段代码放在使能时钟的函数之前
	
	GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
	GPIO_InitStructure.GPIO_Pin=GPIO_Pin_All;	//用到PA0~PA15,16个端口
	GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
	
	GPIO_Init(GPIOA,&GPIO_InitStructure);

设置所需端口为低电平,并用延时函数进行延时

		GPIO_Write(GPIOA,~0x0001);	//二进制为0000 0000 0000 0001,"~"为取反号,低电平点亮所以取反
		Delay_ms(500);	//延迟500毫秒

完整代码如下

#include "stm32f10x.h" // Device header
#include "Delay.h"	//引用延时函数头文件

int main(void)
{
	GPIO_InitTypeDef GPIO_InitStructure;
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
	
	GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
	GPIO_InitStructure.GPIO_Pin=GPIO_Pin_All;	//用到PA0~PA15,16个端口
	GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
	
	GPIO_Init(GPIOA,&GPIO_InitStructure);
	
	while(1)
	{
		GPIO_Write(GPIOA,~0x0001);	//二进制为0000 0000 0000 0001,"~"为取反号,低电平点亮所以取反
		Delay_ms(500);	//延迟500毫秒
		GPIO_Write(GPIOA,~0x0002);	//二进制为0000 0000 0000 0010
		Delay_ms(500);
		GPIO_Write(GPIOA,~0x0004);	//二进制为0000 0000 0000 0100
		Delay_ms(500);
		GPIO_Write(GPIOA,~0x0008);	//二进制为0000 0000 0000 1000
		Delay_ms(500);
		GPIO_Write(GPIOA,~0x0010);	//二进制为0000 0000 0001 0000
		Delay_ms(500);
		GPIO_Write(GPIOA,~0x0020);	//二进制为0000 0000 0010 0000
		Delay_ms(500);
		GPIO_Write(GPIOA,~0x0040);	//二进制为0000 0000 0100 0000
		Delay_ms(500);
		GPIO_Write(GPIOA,~0x0080);	//二进制为0000 0000 1000 0000
		Delay_ms(500);
	}
}

编译结果如下
在这里插入图片描述

编译并下载到芯片中,结果 如下

VID_20231016_194945

用示波器观测波形

使用逻辑分析仪前的操作

将晶振设置为8MHZ
在这里插入图片描述
勾选/填写以下内容
在这里插入图片描述
(Parameter部分根据不同的芯片填写,这里使用的是STM32F103C8,设置完点击ok)
编译了程序之后
点击start/stop debug Session来显示逻辑分析仪菜单
在这里插入图片描述
打开逻辑分析仪
在这里插入图片描述

使用逻辑分析仪观测波形

打开后点击setup
在这里插入图片描述
添加要观测的端口,再回车键,这里添加的是PA1,双击添加的端口名称,设置Display Type为bin
在这里插入图片描述
以此类推,这里添加了PA0~PA7八个端口

在这里插入图片描述
点击运行
在这里插入图片描述
运行一段时间后点击左上角停止运行
在这里插入图片描述
(将鼠标光标放在图形处,滑动光标即可任意放大缩小图形)

最后得出结果如下:
在这里插入图片描述
由图看出,PA0~PA7在轮流处于低电平,本次实验为低电平有效,即八个端口的led在轮流亮,流水灯操作成功。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值