基于标准外设库的LED流水灯

本文介绍了如何在STM32上创建项目,添加标准库,编写主函数控制GPIO,进行电路连接,烧录代码,并利用逻辑分析仪观察管脚时序波形,以加深对外设库的理解和调试技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、工程项目创建文件夹、添加STM32标准外设库文件

1.下载标准库

2.创建工程

二、编写代码

1.主函数

2.编辑实现

三、连接电路

四、代码烧录与实现

五、观察管脚的时序波形

六、总结


一、工程项目创建文件夹、添加STM32标准外设库文件

1.下载标准库

下载地址: STM32标准外设软件库 - 意法半导体STMicroelectronics

解压后可以看到主要包含以下几个文件夹

2.创建工程

选择STM32F103C8系列单片机

在创建完成后将工程模板文件(User,Start,Library)拷贝到所创建的文件夹下。

在Keil中新增文件组

右击Target 1点击Add Group,并依次命名

右击命名好的文件夹,点击Add Existing Files to Group 'User'...,选择All Files,添加完成。

点击魔术棒,点击C++ -> include path 依次添加文件路径。

二、编写代码

1.主函数

#include "stm32f10x.h"                  // Device header
#include "Delay.h"
int main(void)
{
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
	
	GPIO_InitTypeDef GPIO_InitStructure;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOA, &GPIO_InitStructure);
	
	while (1)
	{
		GPIO_Write(GPIOA, ~0x0001);	//0000 0000 0000 0001
		Delay_ms(1000);
		GPIO_Write(GPIOA, ~0x0002);	//0000 0000 0000 0010
		Delay_ms(1000);
		GPIO_Write(GPIOA, ~0x0004);	//0000 0000 0000 0100
		Delay_ms(1000);
  	    GPIO_Write(GPIOA, ~0x0008);	//0000 0000 0000 1000
		Delay_ms(1000);
		GPIO_Write(GPIOA, ~0x0010);	//0000 0000 0001 0000
		Delay_ms(1000);
		GPIO_Write(GPIOA, ~0x0020);	//0000 0000 0010 0000
		Delay_ms(1000);
		GPIO_Write(GPIOA, ~0x0040);	//0000 0000 0100 0000
		Delay_ms(1000);
		GPIO_Write(GPIOA, ~0x0080);	//0000 0000 1000 0000
		Delay_ms(1000);
		
		
		//GPIO_Write(GPIOA, ~0x0010);	//0000 0000 0000 1000
		//Delay_ms(2000);
		
	}
}

2.编辑实现

三、连接电路

四、代码烧录与实现

点击魔法棒,生成hex文件。

打开FlyMcu,进行代码烧录。

五、观察管脚的时序波形

点击Target,我使用的单片机型号是stm32f103c8t,将Xtal(MHz)修改为8.0

点击Debug,进行配置修改。

打开逻辑分析仪,点击Set Up,在弹出窗口中新建观察引脚,添加完成后把每个Display Type改成Bit。然后运行程序得到如下波形。

六、总结

通过这个实验,我对STM32寄存器操作和标准外设库的使用有了更深入的了解,在没有示波器的条件下,通过使用Keil的软件仿真逻辑分析仪功能观察管教的时序波形,也更加方便动态跟踪调试和定位代码故障点。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值