【无标题】

嵌入式开发系统

1. 程序设计思路

根据题目要求,我们需要使用GPIOA、GPIOB、GPIOC这三个端口控制LED灯轮流闪烁。具体的实现思路如下:

  1. 配置GPIOA、GPIOB、GPIOC三个端口为输出模式。
  2. 将LED灯连接到对应的GPIO端口。
  3. 编写程序使得三个灯轮流闪烁,每一个灯点亮的时间为1秒。

2. C语言寄存器方式编程代码

#include "stm32f10x.h"

void delay(int milliseconds) {
    int i;
    for (i = 0; i < milliseconds * 4000; i++) {
        ;
    }
}

int main(void) {
    // 使能GPIOA、GPIOB、GPIOC的时钟
    RCC->APB2ENR |= (1 << 2) | (1 << 3) | (1 << 4);

    // 配置GPIOA、GPIOB、GPIOC的引脚输出模式
    GPIOA->CRL &= 0xFFFFFFF0; // PA0
    GPIOA->CRL |= 0x00000003;
    GPIOB->CRH &= 0xFFFFF0FF; // PB12
    GPIOB->CRH |= 0x00000300;
    GPIOC->CRH &= 0xFFF0FFFF; // PC14
    GPIOC->CRH |= 0x00030000;

    while (1) {
        // 点亮PA0灯
        GPIOA->BSRR = (1 << 0);
        delay(1000); // 延时1秒
        // 关闭PA0灯
        GPIOA->BRR = (1 << 0);

        // 点亮PB12灯
        GPIOB->BSRR = (1 << 12);
        delay(1000); // 延时1秒
        // 关闭PB12灯
        GPIOB->BRR = (1 << 12);

        // 点亮PC14灯
        GPIOC->BSRR = (1 << 14);
        delay(1000); // 延时1秒
        // 关闭PC14灯
        GPIOC->BRR = (1 << 14);
    }
}

3. 实验结果

根据最小系统核心板电路原理图,将PC13与PC14进行连接,将编写好的程序烧录到STM32最小系统核心板上。如图所示:
在这里插入图片描述

通过程序烧录后,首先会点亮PC13处的LED灯来验证代码是否正常运行。然后,三个LED灯(PA0、PB12、PC14)会依次闪烁,每一个灯点亮的时间为1

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值