STM32C8T6+面板板+3只LED点亮流水灯

一、实验题目

以 STM32最小系统核心板(STM32F103C8T6)+面板板+3只红绿蓝LED 搭建电路,使用GPIOB、GPIOC、GPIOD这3个端口控制LED灯,轮流闪烁,间隔时长1秒。

1)写出程序设计思路,包括GPIOx端口的各寄存器地址和详细参数;

2)分别用汇编语言,C语言编程实现。

二、建立工程文件

建立工程文件可以我们自己来一步一步按照自己的需要进行建立,也可以在网上找到合适的其他人建立好的工程模板,这样可以大大提高效率,本文就从这两方面给大家介绍。

1.自己建立工程

  • 首先新建一个light工程,工程的建立方法同之前文章的方法,这里不过多介绍。
  • 本实验要求我们用STM32C8T6芯片,所以在建立工程前选择芯片要选择相对应的。
    请添加图片描述
  • 建立好的工程如图所示。
    请添加图片描述
  • 接下来我们要添加启动代码,启动代码在网络上有,需要者需要自己进行下载。
  • 启动代码就是一段与硬件相关的汇编代码,ST公司对于不同容量的芯片提供了不同的三个启动文件,分别是:
    startup_stm32f10x_ld.s,startup_stm32f10x_md.s,startup_stm32f10x_hd.s
    依次对应:

小容量:FLASH≤32K
中容量:64K≤FLASH≤128K
大容量:256K≤FLASH

我们按照需求选择需要的启动文件,因为我们的芯片选择是STMC8T6,所以我们的Flash容量大小是128K对应中容量,所以我们选择startup_stm32f10x_md.s并将该文件下载保存到工程文件目录下。

  • 接下来在工程中加入启动文件如图所示:
    请添加图片描述
    打开该.s文件可以看到对这个文件的描述,这个属于开发者设计的描述内容,我们只需要知道需要添加他才可以进行初始化、调用等操作就行,具体文件内容不用过多了解。

  • 接下来我们在工程文件夹右键点击Manage Project Items,可以看到此时只有一个source group组,我们添加一个组用来存放sys.c,delay.c和usart.c文件,组的名字自己确定一个好记的名字就行。
    请添加图片描述

  • 同样我们可以再新建一个组用来存放我们的.c文件,当然也可以不新建,就放在已有的组source group里就可以,看个人习惯。

  • 接下来我们需要修改全局宏定义,点击魔术棒图标,在C++处修改Define。
    在这里插入图片描述

  • 在output处勾选生成hex文件。
    在这里插入图片描述
    这样我们的工程就建立完毕。

2.使用网上模板

合理利用互联网资源能使我们工作的效率大大提高,上面介绍了手动建立工程,但网上已经有相关的资源,省去了我们每次建立工程的麻烦,这里我个人使用的是洋桃电子,感兴趣的可以去官网去下载。
请添加图片描述
如图所示,我们只需直接将模板文件夹内建立好的工程即可,打开后左侧可以看到已经建立好相关的组和文件,当然启动文件也在内。

三、点亮LED灯

1.代码实现

  • 根据题目要求,我们首先要初始化LED灯的接口并配置时钟。选择LED_Init 三个目标端口的模式为推挽输出,默认输出1,这样就完成了初始化端口。
    led.c
#include "led.h"

void LED_Init(void){
    //LED灯的接口初始化
	GPIO_InitTypeDef  GPIO_InitStructure; 	
    RCC_APB2Periph
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cleveryoga

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值