普中开源电子分享网

 找回密码
 立即注册
搜索
查看: 2766|回复: 2

STM32-F1用GPIOB端口点亮LED灯

[复制链接]

1

主题

2

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2022-12-11 20:34:01 | 显示全部楼层 |阅读模式
我按照资料教程,用GPIOC可以点亮LED1闪烁。但我在尝试用GPIOB端口点亮LED1时,板子没有反应,这是什么情况啊?

stm32f10x.h头文件如下:
#define PERIPH_BASE      ((unsigned int)0x40000000)
       
#define APB2PERIPH_BASE  (PERIPH_BASE + 0x00010000)


#define GPIOB_BASE       (APB2PERIPH_BASE + 0x0C00)


#define GPIOB_CRL                   *(unsigned int*)(GPIOB_BASE+0x00)
#define GPIOB_CRH                   *(unsigned int*)(GPIOB_BASE+0x04)
#define GPIOB_IDR                   *(unsigned int*)(GPIOB_BASE+0x08)
#define GPIOB_ODR                   *(unsigned int*)(GPIOB_BASE+0x0C)
#define GPIOB_BSRR                   *(unsigned int*)(GPIOB_BASE+0x10)
#define GPIOB_BRR                   *(unsigned int*)(GPIOB_BASE+0x14)
#define GPIOB_LCKR                   *(unsigned int*)(GPIOB_BASE+0x18)




#define AHBPERIPH_BASE           (PERIPH_BASE + 0x20000)


#define RCC_BASE                 (AHBPERIPH_BASE + 0x1000)
#define RCC_APB2ENR                  *(unsigned int*)(RCC_BASE+0x18)



主函main.c文件如下:
#include "stm32f10x.h"
typedef unsigned int u32;

void SystemInit(){       
}

void delay(u32 i){
        while(i--);
}

int main(){
        RCC_APB2ENR |= 1<<3;
        GPIOB_CRL &= ~( 0x0F<< (4*0));
        GPIOB_CRL |= (3<<4*0);
        GPIOB_BSRR=(1<<(16+0));
        while(1){
                GPIOB_BSRR=(1<<(16+0));
                delay(0xFFFFF);
                GPIOB_BSRR=(1<<(0));
                delay(0xFFFFF);
        }
}

回复

使用道具 举报

1

主题

2

帖子

7

积分

新手上路

Rank: 1

积分
7
 楼主| 发表于 2022-12-11 20:35:06 | 显示全部楼层
开发板型号:STM32-PZ6806L
回复 支持 反对

使用道具 举报

1

主题

2

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2022-12-30 20:34:20 | 显示全部楼层
因为STM32-PZ6806L的LED与GPIOC是连接好了,在做板子时就定死了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|普中开源电子分享网 粤ICP备16123577号-2

GMT+8, 2024-4-25 09:09 , Processed in 0.089741 second(s), 30 queries .

Powered by 论坛搭建 X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表