LED实验2


一、搭建STM32的开发环境
(一)安装jdk
由于STM32CubeMX是Java实现的,需要安装jdk环境。
jdk官网下载链接:
https://www.oracle.com/java/technologies/javase-downloads.html

(二)安装STM32CubeMX
1.下载地址:
https://www.st.com/en/development-tools/stm32cubemx.html
(详细安装过程参见链接)

2.安装固件库
①运行CubeMX
​​在这里插入图片描述

 ②选择 Help->Magne .... 安装固件库

在这里插入图片描述

二、HEL库GPIO端口3只LED红绿灯的周期闪烁
(一)CubeMX建项目
1.新建File->Project

在这里插入图片描述

2.选择芯片STM32F103C8

在这里插入图片描述

3.SYS选择

在这里插入图片描述

4.RCC选择

在这里插入图片描述

5.选择端口输出设置,选择需要的端口,点击设置GPIO_OUTPUT,我选择的是PA4,PB5,PC14
在这里插入图片描述

6、GPIO配置:
在这里插入图片描述

7.Clock Configuration设置

在这里插入图片描述

8.Project Manager设置(注意路径全为英文,不然最后生成代码会报错)
在这里插入图片描述

9.创建完成并用keil打开 (点击生成代码显示如下框图再点击中间选项直接进入MDK)

在这里插入图片描述

(二)main.c代码修改
1.在while(1)中输入以下代码

在这里插入图片描述

10、最后用ST-LINK烧入代码实现流水灯:

4

11、观察三个输出波形:
在这里插入图片描述

在这里插入图片描述

二、用stm32F103的GPIOA端某一管脚接一个开关(用杜邦线模拟代替)。采用中断模式编程。
1.建立工程,配置参数
重新建立一个新的工程,按照上面的实验步骤进行相同的配置后,又多出来了一个GPIO接口来当作开关,我这里使用了GPIOA的PA8。

在这里插入图片描述

2、配置NVIC

在这里插入图片描述

3.代码编写和编译
打开图中的文件后在HAL_GPIO_EXTI_Callback()函数中写入以下的代码

在这里插入图片描述
在这里插入图片描述

4、打开main.c文件,在主函数while(1)中调用上面的函数
在这里插入图片描述

5、编译并将代码烧录进芯片观察现象:

5

三、使用Proteus8.15,建立一个 stm32f103c8 的固件项目,绘制上述实验中的系统电路, 然后加载对应的 .hex 程序,仿真运行,观察运行效果是否符合预期。
1.创建新工程
创建新工程,然后名称和路径自己设置,最好不要有中文路径,改好后直接点击next

在这里插入图片描述

下面的还是直接点击next
在这里插入图片描述
在这里插入图片描述

下面的界面中,按照步骤选择出所用的STM芯片系列
在这里插入图片描述

2.设计电路
点击下图中“P”的标志,然后可以在搜索栏目中查找你所需要的元器件,然后双击元器件它就会增添到左侧的元器件栏目中。(不知道元器件英文标识的可以查protues元器件对照表)

在这里插入图片描述

然后就可以根据你的keil的设计代码中,你所使用的引脚与LED进行连接:

在这里插入图片描述

连接完成后,打开对应keil的项目,然后运行产生hex文件,点击芯片,在图中位置找到自己的keil项目,在里面找到hex文件,选择完成过后,点击确定
在这里插入图片描述

注意:若找不到hex文件,可以在keil中,点击魔术棒,点击output,看是否勾选了“生成HEX文件”

在这里插入图片描述

然后可以点击运行了

在这里插入图片描述

依次点亮:
在这里插入图片描述

3.建立任务二中的电路
具体步骤和上述的步骤一样

在这里插入图片描述

五、在proteus电路中加入示波器模块,观察GPIO端口波形
在左侧元器件栏目中找到示波器
在这里插入图片描述

将要观察电平波形的地方与示波器的接口连接

在这里插入图片描述
在这里插入图片描述

六、心得体会:
硬件连接的重要性不容忽视。在实验开始前,确保LED和开关与STM32芯片的正确连接是实验成功的基础。任何一处连接错误都可能导致LED无法正常工作或者中断无法正确触发,因此在连接过程中需要仔细核对引脚定义和连接方式。
调试过程也是一个不断学习和发现问题的过程。当遇到LED不亮或者中断不响应等问题时,需要通过逐步排查可能出现问题的环节,比如检查代码逻辑是否正确、硬件连接是否松动、中断配置是否准确等。通过不断地调试,不仅能够解决当前实验中遇到的问题,还能加深对整个系统的理解,提高自己的调试能力。
这次实验让我更加深入地了解了STM32的开发流程和相关知识,从硬件连接到软件配置,再到代码编写和调试,每一个环节都紧密相连,只有掌握好每一个部分,才能顺利完成实验项目,实现预期的功能。同时,也让我感受到了嵌入式系统开发的乐趣和挑战,激励我在今后的学习和实践中继续深入探索这一领域。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值