野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 27448|回复: 5

为什么我RCC->出来的是uint32_t,GPIOB->也是uint32_t

[复制链接]
发表于 2020-2-5 19:38:58 | 显示全部楼层 |阅读模式
本帖最后由 xzq338 于 2020-2-5 19:52 编辑

stm32f10x.h

/*片上外设基地址 */
#define                        PERIPH_BASE                                                                                ((unsigned int)0x40000000)

/*总线基地址,GPIO 都挂载到 APB2 上 */        
#define                        APB2PERIPH_BASE                                                                (PERIPH_BASE+0x10000)
#define                        AHBPERIPH_BASE                                                                (PERIPH_BASE+0x20000)

/*GPIO外设基地址*/
#define                        GPIOA_BASE                                                                                (APB2PERIPH_BASE+0x0800)
#define                        GPIOB_BASE                                                                                (APB2PERIPH_BASE+0x0C00)
#define                        GPIOC_BASE                                                                                (APB2PERIPH_BASE+0x1000)
#define                        GPIOD_BASE                                                                                (APB2PERIPH_BASE+0x1400)
#define                        GPIOE_BASE                                                                                (APB2PERIPH_BASE+0x1800)
#define                        GPIOF_BASE                                                                                (APB2PERIPH_BASE+0x1C00)
#define                        GPIOG_BASE                                                                                (APB2PERIPH_BASE+0x2000)

/*RCC 外设基地址*/
#define                        RCC_BASE                                                                                        (AHBPERIPH_BASE+0x1000)
        
typedef unsigned int      uint32_t;
typedef unsigned short    uint16_t;

//GPIO寄存器结构体定义
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;


//GPIO外设声明
#define                GPIOA                                        ((GPIO_TypeDef *) GPIOA_BASE)
#define                 GPIOB                                           ((GPIO_TypeDef *) GPIOB_BASE)
#define                GPIOC                                        ((GPIO_TypeDef *) GPIOC_BASE)
#define                GPIOD                                        ((GPIO_TypeDef *) GPIOD_BASE)
#define                GPIOE                                        ((GPIO_TypeDef *) GPIOE_BASE)
#define                GPIOF                                        ((GPIO_TypeDef *) GPIOF_BASE)
#define                GPIOG                                        ((GPIO_TypeDef *) GPIOG_BASE)


//RCC寄存器结构体定义
typedef struct
{
        uint32_t CR;
        uint32_t CFGR;
        uint32_t CIR;
        uint32_t APB2RSTR;
        uint32_t APB1RSTR;
        uint32_t AHBENR;
        uint32_t APB2ENR;
        uint32_t APB1ENR;
        uint32_t BDCR;
        uint32_t CSR;
}RCC_TypeDef;

#define         RCC                                                ((RCC_TypeDef *)RCC_BASE) 11.png



回复

使用道具 举报

发表于 2020-2-5 21:17:11 | 显示全部楼层
把工程放到没有中文路径地方试试
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-6 12:47:21 | 显示全部楼层
本帖最后由 xzq338 于 2020-2-6 13:41 编辑
WishWish 发表于 2020-2-5 21:17
把工程放到没有中文路径地方试试

这是什么原因
p1.png
p2.png
回复 支持 反对

使用道具 举报

发表于 2020-2-6 14:00:30 | 显示全部楼层

字面意思 换GPIOB.ODR
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-6 15:17:41 | 显示全部楼层
WishWish 发表于 2020-2-6 14:00
字面意思 换GPIOB.ODR

问题找到了,是第一行那个宏最后用了中文的括号。谢了!
回复 支持 反对

使用道具 举报

发表于 2021-2-28 22:07:20 | 显示全部楼层
我也是,为啥不直接弹出定义好的寄存器
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-23 17:24 , Processed in 0.034255 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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