野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8036|回复: 1

ODR寄存器无法控制灯的亮灭

[复制链接]
发表于 2022-3-26 17:09:31 | 显示全部楼层 |阅读模式

#include "stm32f10x.h"                  // Device header

int main(void)
{
//打开GPIOB端口的时钟
        RCC->APB2ENR &=~((0x0f)<<3);
        RCC->APB2ENR |=((1)<<3);
       
        //配置IO口为输出
        GPIOB->CRL &=~((0x0f)<<(4*5));
        GPIOB->CRL |=((1)<<(4*1));
       
        //控制ODR寄存器
        GPIOB->ODR &=~(1<<0);
        GPIOB->ODR |=(1<<0);
}
void SystemInit(void)
{
        //骗过编译器
}
----------------------------------------------------------------------------------
//外设 perirhral

#define PERIPH_BASE     ((unsigned int)0x40000000)
       

#define APB1_PERIPH_BASE              PERIPH_BASE
#define APB2_PERIPH_BASE             (PERIPH_BASE+0x10000)
#define AHB_PERIPH_BASE             (PERIPH_BASE+0x20000)


#define RCC_BASE                     (AHB_PERIPH_BASE+0x1000)
#define GPIOB_BASE             (APB2_PERIPH_BASE+0x0c00)

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

typedef unsigned int            uint32_t;
typedef unsigned short    uint16_t;

typedef struct
{
        uint32_t CRL;
        uint32_t CRH;
        uint32_t IDR;
        uint32_t ODR;
        uint32_t BSRR;
        uint32_t BRR;
        uint32_t LCKR;
} GPIO_TypeDef;
#define GPIOB                 ((GPIO_TypeDef*)GPIOB_BASE)



1.jpg
2.jpg
回复

使用道具 举报

 楼主| 发表于 2022-3-26 19:54:59 | 显示全部楼层
明白了io口配置错了
野火论坛202203261954458005..png
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-24 01:26 , Processed in 0.034250 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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