野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 879|回复: 3

8寄存器电灯不灭,求求大佬救救

[复制链接]
发表于 2023-6-19 13:29:57 | 显示全部楼层 |阅读模式
main.c

#if 0 // 条件编译宏,=0不编译

#include <reg52.h>

sbit LED = P0^0

void main(void)
{
        P0 = 0XFE; // 1111 1110 点亮灯 // 总线操作
       
        LED = 0; // 位操作
}

#endif

#include "stm32f10x.h" // 寄存器映射
// <>表示该头文件不在当前工程目录下,在编译器目录下,""表示该头文件在当前工程目录下,找不到就到安装目录找

int main (void)
{
        // 打开 GPIOB 端口的时钟
        RCC_APB2ENR         |= ((1) << 3);
       
        // 配置 IO 口为输出(GPIOB)       
        GPIOB_CRL &= ~((0x0f) << (4*0));
        GPIOB_CRL |= ((1) << (4*0));
       
        // 控制 ODR 寄存器
//        GPIOB_ODR &= ~(1 << 0); // 地址偏移0Ch // 清0,左移0位
        while(1)
        {}
       
}

// 置位 |= ,清零 &= ~
//        
void SystemInit(void)
{
        // 函数体为空,目的是为了骗过编译器不报错
}




stm32f10x.h

// 用来存放 STM32 寄存器映射的代码

// 外设基地址 perirhral
// 三条总线基地址
// 片上外设基地址
#define PERIPH_BASE           ((unsigned int)0x40000000)
// APB1 总线基地址
#define APB1PERIRH_BASE                                        PERIRH_BASE
// APB2 总线基地址
#define APB2PERIPH_BASE       (PERIPH_BASE + 0x10000)
// AHB 总线基地址
#define AHBPERIPH_BASE        (PERIPH_BASE + 0x20000)

// RCC外设基地址
#define RCC_BASE      (AHBPERIPH_BASE + 0x1000)
// GPIOB外设基地址
#define GPIOB_BASE            (APB2PERIPH_BASE + 0x0C00)
// RCC的AHB1时钟使能寄存器地址
#define RCC_APB2ENR                 *(unsigned int*)(RCC_BASE+0x18)
       
// GPIOB寄存器地址,强制转换成指针
#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)


为什么我把配置GPIO低电平的语句删了灯不灭呀
回复

使用道具 举报

发表于 2023-6-20 14:06:50 | 显示全部楼层
这个需要查看数据手册, odr寄存器的默认值,默认上电或者复位为0,所以有没有置低本质上是一样的.
回复 支持 1 反对 0

使用道具 举报

发表于 2023-7-28 17:01:29 | 显示全部楼层
我也是这个问题,解决了麻烦教我一下
回复 支持 反对

使用道具 举报

发表于 2023-7-28 17:23:39 | 显示全部楼层
你看你的板子灯的接线,很多是接的高电平,置0亮,置1灭
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-4-27 13:44 , Processed in 0.053491 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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