这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 活动中心 » 板卡试用 » 换逻辑分析仪_STM32F103_(寄存器)驱动GPIO操作,点亮LED

共10条 1/1 1 跳转至

换逻辑分析仪_STM32F103_(寄存器)驱动GPIO操作,点亮LED

工程师
2024-06-19 20:32:57   被打赏 20 分(兑奖)     打赏

1、在STM32F103C8T6微控制器上操作GPIO以点亮LED,您需要进行以下步骤:


步骤
选择LED连接的GPIO引脚:连接LED的GPIO引脚。在STM32F103C8T6中,GPIO引脚的编号采用端口字母和引脚号的组合,PA4表示A端口的第4号引脚。(我这里是板载LED,LED为绿色)


初始化GPIO引脚:
将选定的GPIO引脚配置为输出模式,以便能够通过控制其电平来控制LED的亮度。
控制LED状态:

设置GPIO引脚的输出电平,使LED点亮或熄灭。


2、示例代码
以下是一个简单的示例代码,演示如何在STM32F103C8T6微控制器上控制一个LED PA4引脚:

#include "stm32f1xx.h"

void GPIO_Init(void);

int main(void)
{
    // 初始化GPIO引脚
    GPIO_Init();
    
    while (1)
    {
        // 点亮LED(设置引脚为低电平)
        GPIOA->BSRR = GPIO_BSRR_BR5;
        
        // 延时
        for (int i = 0; i < 1000000; i++);
        
        // 熄灭LED(设置引脚为高电平)
        GPIOA->BSRR = GPIO_BSRR_BS5;
        
        // 延时
        for (int i = 0; i < 1000000; i++);
    }
}

/** 
  * GPIO初始化函数
  */
void GPIO_Init(void)
{
    // 使能GPIOA的时钟
    RCC->APB2ENR |= RCC_APB2ENR_IOPAEN;
    
    // 配置PA5引脚为推挽输出模式,最大速度为50MHz
    GPIOA->CRL &= ~(GPIO_CRL_MODE5 | GPIO_CRL_CNF5);
    GPIOA->CRL |= (GPIO_CRL_MODE5_0);
}

代码解释

GPIO_Init函数:配置PA5引脚为推挽输出模式,最大速度为50MHz。


RCC->APB2ENR |= RCC_APB2ENR_IOPAEN;:使能GPIOA的时钟。

GPIOA->CRL &= ~(GPIO_CRL_MODE5 | GPIO_CRL_CNF5);:清除PA5引脚的模式和配置位。

GPIOA->CRL |= (GPIO_CRL_MODE5_0);:设置PA5引脚为推挽输出模式,最大速度为50MHz。

main函数:在一个无限循环中交替点亮和熄灭LED。


GPIOA->BSRR = GPIO_BSRR_BR5;:使用位带操作清除PA5引脚,点亮LED(引脚输出低电平)。

GPIOA->BSRR = GPIO_BSRR_BS5;:使用位带操作设置PA5引脚,熄灭LED(引脚输出高电平)。

for (int i = 0; i < 1000000; i++);:简单的延时循环,控制LED的亮灭时间间隔。


3、个人绘画PCB板

image.png

4、驱动IO口点亮LED:

760c3fbfa99ebe97b2a49ba08739069.jpg

5、原理图:

PA4引脚位置:

image.png

LED连接位置与原理图:

image.png





专家
2024-06-19 21:43:22     打赏
2楼

感谢分享


专家
2024-06-19 21:44:31     打赏
3楼

感谢分享


专家
2024-06-20 06:42:21     打赏
4楼

学习学习


专家
2024-06-20 08:16:28     打赏
5楼

不错,学习一下


菜鸟
2024-06-20 09:54:11     打赏
6楼

学习学习


专家
2024-06-20 21:26:19     打赏
7楼

感谢分享


专家
2024-06-25 11:18:15     打赏
8楼

谢谢分享



专家
2024-06-25 18:56:35     打赏
9楼

感谢分享


工程师
2024-06-26 08:59:31     打赏
10楼

谢谢分享。


共10条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]